o2o-site-AEO/solution/frontend/src/data/industryData.ts
Mina Choi c85c577349 이름: solution/front → solution/frontend
`backend` 옆에 `front` 가 있을 이유가 없었다. negosium 의 negodata/front 를 그대로
베꼈고 그게 왜 front 인지는 따져보지 않았다 — 근거 없이 들여온 이름이라 바로잡는다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019uYhHQdssRubirPirrdJJC
2026-08-31 15:27:16 +09:00

410 lines
18 KiB
TypeScript

import type {IndustryData, IndustryType} from '@o2o/shared';
export const INDUSTRY_CONFIGS: Record<IndustryType, IndustryData> = {
stay: {
id: 'stay',
name: '숙박',
subName: '펜션 · 스테이',
description: '감성 스테이, 풀빌라, 독채 펜션, 게스트하우스',
channels: [
{ id: 'stay_platforms', name: '야놀자 · 여기어때', checked: true },
{ id: 'naver_place', name: '네이버 플레이스', checked: true },
{ id: 'instagram', name: '인스타그램', checked: true },
],
sections: [
{ id: 'hero', type: 'hero', name: '히어로', isLocked: true, isEnabled: true, description: '상단 메인 비주얼과 대표 문구' },
{ id: 'intro', type: 'intro', name: '소개', isLocked: false, isEnabled: true, description: '스테이의 철학과 공간 스토리' },
{ id: 'rooms', type: 'rooms', name: '객실 안내', isLocked: false, isEnabled: true, description: '객실 타입, 구조, 비치 물품' },
{ id: 'info', type: 'info', name: '기본 정보', isLocked: true, isEnabled: true, description: '체크인, 주차, 시설 핵심 정보' },
{ id: 'rules', type: 'rules', name: '이용 규정', isLocked: false, isEnabled: true, description: '환불 규정, 입실 수칙 및 에티켓' },
{ id: 'booking', type: 'booking', name: '실시간 예약', isLocked: false, isEnabled: true, description: '예약 현황 및 예약 신청' },
{ id: 'photos', type: 'photos', name: '사진 갤러리', isLocked: false, isEnabled: true, description: '감성 인테리어와 외부 풍경' },
{ id: 'map', type: 'map', name: '오시는 길', isLocked: true, isEnabled: true, description: '위치 안내 및 대중교통 경로' },
{ id: 'weather', type: 'weather', name: '날씨', isLocked: false, isEnabled: true, description: '현재 기온과 사업장 주변 날씨' },
{ id: 'local', type: 'local', name: '지역 정보', isLocked: false, isEnabled: true, description: '주변 관광지 및 맛집 추천' },
{ id: 'faq', type: 'faq', name: '자주 묻는 질문', isLocked: false, isEnabled: true, description: '고객들이 자주 묻는 질문과 답변' },
],
templates: [
{
id: 'stay-o2o-editorial',
industryId: 'stay',
name: 'O2O 에디토리얼',
tone: 'photo',
toneLabel: '차분한 모던',
description: '절제된 타이포그래피와 여백, 차분한 슬레이트 톤으로 신뢰감과 감성을 함께 전합니다.',
colors: {
primary: '#18181b',
secondary: '#52525b',
bg: '#ffffff',
card: '#fafafa',
text: '#09090b',
accent: '#2563eb',
},
fontStyle: 'Modern Editorial',
},
{
id: 'stay-quiet-margin',
industryId: 'stay',
name: '조용한 여백',
tone: 'photo',
toneLabel: '사진 중심',
description: '넓은 여백과 감성적인 사진 배치로 여유로운 휴식 분위기를 전달합니다.',
colors: {
primary: '#1e293b',
secondary: '#64748b',
bg: '#ffffff',
card: '#f8fafc',
text: '#0f172a',
accent: '#0284c7',
},
fontStyle: 'Clean Minimalist',
},
{
id: 'stay-warm-wood',
industryId: 'stay',
name: '따뜻한 목조',
tone: 'photo',
toneLabel: '사진 중심',
description: '아늑하고 내추럴한 톤으로 자연 친화적인 공간의 따스함을 극대화합니다.',
colors: {
primary: '#43302b',
secondary: '#786055',
bg: '#faf8f5',
card: '#f2ece4',
text: '#29201d',
accent: '#c27847',
},
fontStyle: 'Warm Natural',
},
{
id: 'stay-clear-info',
industryId: 'stay',
name: '또렷한 정보',
tone: 'info',
toneLabel: '정보 중심',
description: '객실 옵션, 구비 시설, 체크인 규정을 한눈에 파악할 수 있는 실용적인 구조입니다.',
colors: {
primary: '#0f172a',
secondary: '#475569',
bg: '#ffffff',
card: '#f1f5f9',
text: '#020617',
accent: '#2563eb',
},
fontStyle: 'Crisp Modern',
},
{
id: 'stay-booking-focus',
industryId: 'stay',
name: '예약 중심',
tone: 'book',
toneLabel: '예약·신청 강조',
description: '객실별 예약 버튼과 실시간 문의 CTA를 전면에 배치하여 전환율을 높입니다.',
colors: {
primary: '#18181b',
secondary: '#52525b',
bg: '#ffffff',
card: '#fafafa',
text: '#09090b',
accent: '#059669',
},
fontStyle: 'Conversion Driven',
},
],
},
cafe: {
id: 'cafe',
name: '카페',
subName: '대형카페 · 로스터리',
description: '스페셜티 로스터리, 베이커리 카페, 오션·마운틴 뷰 대형 카페',
channels: [
{ id: 'naver_place', name: '네이버 플레이스', checked: true },
{ id: 'instagram', name: '인스타그램', checked: true },
{ id: 'kakao_map', name: '카카오맵', checked: true },
],
sections: [
{ id: 'hero', type: 'hero', name: '히어로', isLocked: true, isEnabled: true, description: '시그니처 비주얼과 카페 슬로건' },
{ id: 'intro', type: 'intro', name: '소개', isLocked: false, isEnabled: true, description: '로스팅 철학과 공간 스토리' },
{ id: 'menu', type: 'menu', name: '시그니처 메뉴', isLocked: false, isEnabled: true, description: '대표 원두, 음료, 시그니처 디저트' },
{ id: 'info', type: 'info', name: '기본 정보', isLocked: true, isEnabled: true, description: '영업시간, 좌석수, 편의시설 정보' },
{ id: 'space', type: 'space', name: '공간 · 좌석 안내', isLocked: false, isEnabled: true, description: '1/2층 공간 구성 및 야외 테라스석' },
{ id: 'photos', type: 'photos', name: '사진 갤러리', isLocked: false, isEnabled: true, description: '인테리어, 커피, 베이커리 비주얼' },
{ id: 'inquiry', type: 'inquiry', name: '대관 및 단체 문의', isLocked: false, isEnabled: true, description: '촬영 대관 및 단체 예약 접수' },
{ id: 'map', type: 'map', name: '오시는 길', isLocked: true, isEnabled: true, description: '드라이브 코스 및 주차 진입로 안내' },
{ id: 'weather', type: 'weather', name: '날씨', isLocked: false, isEnabled: true, description: '현재 기온과 매장 주변 날씨' },
{ id: 'local', type: 'local', name: '주변 나들이', isLocked: false, isEnabled: true, description: '양평 드라이브 코스 및 명소' },
{ id: 'faq', type: 'faq', name: '자주 묻는 질문', isLocked: false, isEnabled: true, description: '반려견 동반, 주차, 케어키즈존 안내' },
],
templates: [
{
id: 'cafe-modern-espresso',
industryId: 'cafe',
name: '모던 에스프레소',
tone: 'photo',
toneLabel: '사진 중심',
description: '다크 차콜 톤과 고해상도 커피 샷으로 프로페셔널한 스페셜티 이미지를 완성합니다.',
colors: {
primary: '#1c1917',
secondary: '#78716c',
bg: '#ffffff',
card: '#fafaf9',
text: '#0c0a09',
accent: '#b45309',
},
fontStyle: 'Sleek Roast',
},
{
id: 'cafe-sun-terrace',
industryId: 'cafe',
name: '햇살과 테라스',
tone: 'photo',
toneLabel: '사진 중심',
description: '산뜻한 화이트와 그린 포인트로 자연 채광 가득한 힐링 테라스 분위기를 연출합니다.',
colors: {
primary: '#14532d',
secondary: '#4b5563',
bg: '#ffffff',
card: '#f0fdf4',
text: '#052e16',
accent: '#16a34a',
},
fontStyle: 'Garden Terrace',
},
{
id: 'cafe-roastery-story',
industryId: 'cafe',
name: '감성 로스터리',
tone: 'info',
toneLabel: '정보 중심',
description: '원두 컵노트, 로스팅 프로파일, 브루잉 가이드를 체계적으로 정리해 전달합니다.',
colors: {
primary: '#332924',
secondary: '#6c584c',
bg: '#fcfaf8',
card: '#f4ede6',
text: '#201815',
accent: '#8c5e3d',
},
fontStyle: 'Artisan Roast',
},
{
id: 'cafe-quick-order',
industryId: 'cafe',
name: '퀵 오더 & 예약',
tone: 'book',
toneLabel: '예약·신청 강조',
description: '시그니처 원두 패키지 스마트스토어 링크 및 단체 대관 접수를 최우선으로 노출합니다.',
colors: {
primary: '#0f172a',
secondary: '#475569',
bg: '#ffffff',
card: '#f8fafc',
text: '#020617',
accent: '#ea580c',
},
fontStyle: 'Dynamic Commerce',
},
],
},
restaurant: {
id: 'restaurant',
name: '음식점',
subName: '식당 · 주점',
description: '한식 다이닝, 일식 오마카세, 이탈리안 비스트로, 고기집',
channels: [
{ id: 'naver_place', name: '네이버 플레이스', checked: true },
{ id: 'catchtable', name: '캐치테이블', checked: true },
{ id: 'instagram', name: '인스타그램', checked: true },
],
sections: [
{ id: 'hero', type: 'hero', name: '히어로', isLocked: true, isEnabled: true, description: '대표 요리 비주얼 및 다이닝 소개' },
{ id: 'intro', type: 'intro', name: '소개', isLocked: false, isEnabled: true, description: '셰프의 조리 철학과 식재료 원산지 이야기' },
{ id: 'menu', type: 'menu', name: '코스 및 메뉴', isLocked: false, isEnabled: true, description: '점심/저녁 코스, 단품 요리, 주류 페어링' },
{ id: 'info', type: 'info', name: '기본 정보', isLocked: true, isEnabled: true, description: '영업시간, 휴무일, 주차, 예약 안내' },
{ id: 'booking', type: 'booking', name: '예약 · 포장 안내', isLocked: false, isEnabled: true, description: '캐치테이블 실시간 룸 예약 및 포장' },
{ id: 'photos', type: 'photos', name: '사진 갤러리', isLocked: false, isEnabled: true, description: '플레이팅, 룸 인테리어, 정갈한 상차림' },
{ id: 'inquiry', type: 'inquiry', name: '단체 행사 문의', isLocked: false, isEnabled: true, description: '상견례, 돌잔치, 기업 대관 문의' },
{ id: 'map', type: 'map', name: '오시는 길', isLocked: true, isEnabled: true, description: '지하철역 출구 및 발렛부스 위치' },
{ id: 'weather', type: 'weather', name: '날씨', isLocked: false, isEnabled: true, description: '현재 기온과 매장 주변 날씨' },
{ id: 'local', type: 'local', name: '주변 안내', isLocked: false, isEnabled: true, description: '청담 명품거리 및 갤러리 안내' },
{ id: 'faq', type: 'faq', name: '자주 묻는 질문', isLocked: false, isEnabled: true, description: '콜키지 정책, 알러지 케어, 주차 안내' },
],
templates: [
{
id: 'rest-neat-table',
industryId: 'restaurant',
name: '정갈한 한상',
tone: 'photo',
toneLabel: '사진 중심',
description: '단아한 여백과 요리 고유의 색감을 살려 프리미엄 다이닝의 격을 높입니다.',
colors: {
primary: '#1c1917',
secondary: '#57534e',
bg: '#ffffff',
card: '#fafaf9',
text: '#0c0a09',
accent: '#b45309',
},
fontStyle: 'Sophisticated Table',
},
{
id: 'rest-modern-dining',
industryId: 'restaurant',
name: '모던 다이닝',
tone: 'photo',
toneLabel: '사진 중심',
description: '세련된 다크 모던 톤으로 주류 페어링과 비스트로의 트렌디함을 강조합니다.',
colors: {
primary: '#09090b',
secondary: '#52525b',
bg: '#ffffff',
card: '#f4f4f5',
text: '#09090b',
accent: '#e11d48',
},
fontStyle: 'Chic Bistro',
},
{
id: 'rest-taste-origin',
industryId: 'restaurant',
name: '맛과 원산지',
tone: 'info',
toneLabel: '정보 중심',
description: '계절 코스 구성, 식재료 산지 지도, 조리 과정을 상세히 기록하여 신뢰도를 높입니다.',
colors: {
primary: '#1e293b',
secondary: '#475569',
bg: '#ffffff',
card: '#f1f5f9',
text: '#0f172a',
accent: '#0d9488',
},
fontStyle: 'Artisan Story',
},
{
id: 'rest-booking-type',
industryId: 'restaurant',
name: '테이블 예약형',
tone: 'book',
toneLabel: '예약·신청 강조',
description: '시간대별 룸 예약 위젯과 잔여석 상태를 직관적으로 노출합니다.',
colors: {
primary: '#0f172a',
secondary: '#334155',
bg: '#ffffff',
card: '#f8fafc',
text: '#020617',
accent: '#2563eb',
},
fontStyle: 'Direct Reserve',
},
],
},
tour: {
id: 'tour',
name: '관광 · 체험',
subName: '체험공간 · 전시',
description: '원데이 클래스, 도자기·목공 공방, 사설 갤러리, 팜스테이',
channels: [
{ id: 'naver_place', name: '네이버 플레이스', checked: true },
{ id: 'frip', name: '프립 (체험 플랫폼)', checked: true },
{ id: 'instagram', name: '인스타그램', checked: true },
],
sections: [
{ id: 'hero', type: 'hero', name: '히어로', isLocked: true, isEnabled: true, description: '대표 프로그램 비주얼 및 감성 슬로건' },
{ id: 'intro', type: 'intro', name: '소개', isLocked: false, isEnabled: true, description: '스튜디오 역사와 작가진 소개' },
{ id: 'programs', type: 'programs', name: '체험 프로그램', isLocked: false, isEnabled: true, description: '물레 체험, 핸드빌딩, 키즈 클래스' },
{ id: 'info', type: 'info', name: '기본 정보', isLocked: true, isEnabled: true, description: '운영시간, 입장료, 주차, 예약 방식' },
{ id: 'exhibition', type: 'exhibition', name: '관람 및 갤러리 안내', isLocked: false, isEnabled: true, description: '전시 일정 및 도자기 아트숍' },
{ id: 'photos', type: 'photos', name: '사진 갤러리', isLocked: false, isEnabled: true, description: '체험 모습, 완성 작품, 공방 풍경' },
{ id: 'inquiry', type: 'inquiry', name: '단체 및 출강 문의', isLocked: false, isEnabled: true, description: '기업 워크숍, 학교 단체 체험 접수' },
{ id: 'map', type: 'map', name: '오시는 길', isLocked: true, isEnabled: true, description: '이천 예스파크 진입로 및 주차장' },
{ id: 'weather', type: 'weather', name: '날씨', isLocked: false, isEnabled: true, description: '현재 기온과 체험장 주변 날씨' },
{ id: 'local', type: 'local', name: '주변 관광 코스', isLocked: false, isEnabled: true, description: '도예마을 맛집 및 주변 힐링 스팟' },
{ id: 'faq', type: 'faq', name: '자주 묻는 질문', isLocked: false, isEnabled: true, description: '작품 수령 기간, 복장, 환불 규정' },
],
templates: [
{
id: 'tour-visual-tour',
industryId: 'tour',
name: '비주얼 투어',
tone: 'photo',
toneLabel: '사진 중심',
description: '체험 현장의 생생한 사진과 감각적인 그리드로 방문 욕구를 자극합니다.',
colors: {
primary: '#0f172a',
secondary: '#475569',
bg: '#ffffff',
card: '#f8fafc',
text: '#020617',
accent: '#0284c7',
},
fontStyle: 'Visual Journey',
},
{
id: 'tour-gallery-archive',
industryId: 'tour',
name: '갤러리 아카이브',
tone: 'photo',
toneLabel: '사진 중심',
description: '단아한 미술관 도록 스타일로 공예품과 전시 작품의 미학을 돋보이게 합니다.',
colors: {
primary: '#27272a',
secondary: '#71717a',
bg: '#fafafa',
card: '#f4f4f5',
text: '#18181b',
accent: '#d97706',
},
fontStyle: 'Art Museum',
},
{
id: 'tour-detailed-guide',
industryId: 'tour',
name: '상세 안내형',
tone: 'info',
toneLabel: '정보 중심',
description: '연령대별 추천 코스, 단계별 커리큘럼, 준비물 안내를 명확하게 정리합니다.',
colors: {
primary: '#1e293b',
secondary: '#64748b',
bg: '#ffffff',
card: '#f1f5f9',
text: '#0f172a',
accent: '#4f46e5',
},
fontStyle: 'Curriculum Guide',
},
{
id: 'tour-ticket-booking',
industryId: 'tour',
name: '티켓 예매형',
tone: 'book',
toneLabel: '예약·신청 강조',
description: '클래스 날짜 선택과 즉시 티켓 결제 연동에 최적화된 고전환 레이아웃입니다.',
colors: {
primary: '#0f172a',
secondary: '#334155',
bg: '#ffffff',
card: '#f8fafc',
text: '#020617',
accent: '#059669',
},
fontStyle: 'Instant Booking',
},
],
},
};
/**
* 업종을 아직 모를 때 떨어질 자리.
*
* ★ 스토어의 초기 업종이자, 서버 category 를 못 알아봤을 때의 기본값이다(placeAdapter).
* 두 곳이 다른 값을 쓰면 "빌더가 처음 보여준 화면"과 "사업장을 열었을 때 화면"의
* 섹션·문구가 달라진다 — 사장님 눈에는 값이 바뀐 것으로 보인다.
*/
export const FALLBACK_INDUSTRY: IndustryType = 'stay';