refactor: 요금표를 src/data/pricingTiers.ts 로 분리
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6b387c130c
commit
1d835f0f8b
80
src/data/pricingTiers.ts
Normal file
80
src/data/pricingTiers.ts
Normal file
@ -0,0 +1,80 @@
|
||||
/**
|
||||
* 요금표 (INFINITH Product 1.0). /pricing 화면은 이 데이터만 그린다.
|
||||
* 요금이 확정되면 이 파일만 고치고, 공개 배포(webforai.kr)에서 열려면 src/lib/site.ts 의 SHOW_PRICING 을 켠다.
|
||||
* 2026-10-07 기준 확정 전 값이다.
|
||||
*/
|
||||
// plan 섹션 2·5 기준. Feature Comparison Table(Step 3)에서도 재사용 예정.
|
||||
export type TierId = 'insight' | 'intelligence' | 'intelligence-plus';
|
||||
|
||||
export interface Tier {
|
||||
id: TierId;
|
||||
name: string;
|
||||
tagline: string;
|
||||
monthlyKRW: number; // 원화 (월 단가 · 계약 기준)
|
||||
annualMonthlyKRW: number; // 원화 (연 계약 시 월 환산)
|
||||
annualTotalKRW: number; // 원화 (연 계약 총액)
|
||||
isPopular?: boolean;
|
||||
/** 모든 Tier는 계약 기반 영업 — 온라인 결제 없음. 상담 문의 mailto로 통일. */
|
||||
ctaLabel: string;
|
||||
bullets: string[];
|
||||
footnote?: string;
|
||||
}
|
||||
|
||||
export const PRICING_TIERS: Tier[] = [
|
||||
{
|
||||
id: 'insight',
|
||||
name: 'INSIGHT',
|
||||
tagline: '매월 1번, 병원의 온라인 좌표를 점검하세요',
|
||||
monthlyKRW: 90_000,
|
||||
annualMonthlyKRW: 72_000,
|
||||
annualTotalKRW: 864_000,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 1회 분석 리포트',
|
||||
'전 채널 분석 (홈페이지 · 강남언니 · YouTube · Instagram · Facebook · 네이버 플레이스 · 블로그)',
|
||||
'4주 콘텐츠 플랜',
|
||||
'경쟁사 추적 1개',
|
||||
'PDF 내보내기',
|
||||
],
|
||||
footnote: '신규 개업의 · 1인 의원 추천',
|
||||
},
|
||||
{
|
||||
id: 'intelligence',
|
||||
name: 'INTELLIGENCE',
|
||||
tagline: '경쟁사가 지금 무엇을 바꾸는지, 월 2번 확인하세요',
|
||||
monthlyKRW: 290_000,
|
||||
annualMonthlyKRW: 232_000,
|
||||
annualTotalKRW: 2_784_000,
|
||||
isPopular: true,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 4회 분석 리포트',
|
||||
'8주 콘텐츠 캘린더 + 주간 KPI 기반 조정',
|
||||
'Vision AI (의료진·슬로건·인증 자동 추출)',
|
||||
'경쟁사 추적 3개 · 주간 변동 알림',
|
||||
'KPI 대시보드 (3/12개월 목표)',
|
||||
'브랜드 가이드 + 콘텐츠 필러 5종',
|
||||
'스크린샷 증거 기반 심층 리포트',
|
||||
],
|
||||
footnote: '중형 성형외과 · 메인 타겟',
|
||||
},
|
||||
{
|
||||
id: 'intelligence-plus',
|
||||
name: 'INTELLIGENCE+',
|
||||
tagline: '매일 변하는 시장에 즉시 대응하세요',
|
||||
monthlyKRW: 990_000,
|
||||
annualMonthlyKRW: 792_000,
|
||||
annualTotalKRW: 9_504_000,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 10회 분석 리포트',
|
||||
'12개월 로드맵 + 월간 전략 리뷰',
|
||||
'최대 3개 분원 통합 대시보드',
|
||||
'경쟁사 추적 5개 · 일간 변동 모니터링',
|
||||
'브랜드 가이드 + 콘텐츠 필러 10종',
|
||||
'커스텀 리포트 템플릿 (병원 CI 반영)',
|
||||
'신규 기능 베타 우선 접근',
|
||||
],
|
||||
footnote: '대형 · 멀티 분원 병원',
|
||||
},
|
||||
];
|
||||
@ -16,7 +16,7 @@
|
||||
* (analytics 연동은 Supabase `analytics_events` 테이블 도입 후 후속 작업)
|
||||
*
|
||||
* 핵심 데이터 소스:
|
||||
* - src/data/pricingTiers.ts ← (이 파일 내부에 임시 정의, Step 3에서 분리 고려)
|
||||
* - src/data/pricingTiers.ts ← 요금표 데이터 (2026-10-07 분리. 요금 확정 시 이 파일만 고친다)
|
||||
*/
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { useSearchParams } from 'react-router';
|
||||
@ -32,83 +32,7 @@ import Badge from '../components/Badge';
|
||||
import FeatureComparisonTable from '../components/pricing/FeatureComparisonTable';
|
||||
import FAQ from '../components/pricing/FAQ';
|
||||
import { buildContactMailto } from '../lib/contact';
|
||||
|
||||
// ─── Tier 데이터 정의 ──────────────────────────────────────────────
|
||||
// plan 섹션 2·5 기준. Feature Comparison Table(Step 3)에서도 재사용 예정.
|
||||
type TierId = 'insight' | 'intelligence' | 'intelligence-plus';
|
||||
|
||||
interface Tier {
|
||||
id: TierId;
|
||||
name: string;
|
||||
tagline: string;
|
||||
monthlyKRW: number; // 원화 (월 단가 · 계약 기준)
|
||||
annualMonthlyKRW: number; // 원화 (연 계약 시 월 환산)
|
||||
annualTotalKRW: number; // 원화 (연 계약 총액)
|
||||
isPopular?: boolean;
|
||||
/** 모든 Tier는 계약 기반 영업 — 온라인 결제 없음. 상담 문의 mailto로 통일. */
|
||||
ctaLabel: string;
|
||||
bullets: string[];
|
||||
footnote?: string;
|
||||
}
|
||||
|
||||
const tiers: Tier[] = [
|
||||
{
|
||||
id: 'insight',
|
||||
name: 'INSIGHT',
|
||||
tagline: '매월 1번, 병원의 온라인 좌표를 점검하세요',
|
||||
monthlyKRW: 90_000,
|
||||
annualMonthlyKRW: 72_000,
|
||||
annualTotalKRW: 864_000,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 1회 분석 리포트',
|
||||
'전 채널 분석 (홈페이지 · 강남언니 · YouTube · Instagram · Facebook · 네이버 플레이스 · 블로그)',
|
||||
'4주 콘텐츠 플랜',
|
||||
'경쟁사 추적 1개',
|
||||
'PDF 내보내기',
|
||||
],
|
||||
footnote: '신규 개업의 · 1인 의원 추천',
|
||||
},
|
||||
{
|
||||
id: 'intelligence',
|
||||
name: 'INTELLIGENCE',
|
||||
tagline: '경쟁사가 지금 무엇을 바꾸는지, 월 2번 확인하세요',
|
||||
monthlyKRW: 290_000,
|
||||
annualMonthlyKRW: 232_000,
|
||||
annualTotalKRW: 2_784_000,
|
||||
isPopular: true,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 4회 분석 리포트',
|
||||
'8주 콘텐츠 캘린더 + 주간 KPI 기반 조정',
|
||||
'Vision AI (의료진·슬로건·인증 자동 추출)',
|
||||
'경쟁사 추적 3개 · 주간 변동 알림',
|
||||
'KPI 대시보드 (3/12개월 목표)',
|
||||
'브랜드 가이드 + 콘텐츠 필러 5종',
|
||||
'스크린샷 증거 기반 심층 리포트',
|
||||
],
|
||||
footnote: '중형 성형외과 · 메인 타겟',
|
||||
},
|
||||
{
|
||||
id: 'intelligence-plus',
|
||||
name: 'INTELLIGENCE+',
|
||||
tagline: '매일 변하는 시장에 즉시 대응하세요',
|
||||
monthlyKRW: 990_000,
|
||||
annualMonthlyKRW: 792_000,
|
||||
annualTotalKRW: 9_504_000,
|
||||
ctaLabel: '상담 문의',
|
||||
bullets: [
|
||||
'월 10회 분석 리포트',
|
||||
'12개월 로드맵 + 월간 전략 리뷰',
|
||||
'최대 3개 분원 통합 대시보드',
|
||||
'경쟁사 추적 5개 · 일간 변동 모니터링',
|
||||
'브랜드 가이드 + 콘텐츠 필러 10종',
|
||||
'커스텀 리포트 템플릿 (병원 CI 반영)',
|
||||
'신규 기능 베타 우선 접근',
|
||||
],
|
||||
footnote: '대형 · 멀티 분원 병원',
|
||||
},
|
||||
];
|
||||
import { PRICING_TIERS as tiers, type Tier } from '../data/pricingTiers';
|
||||
|
||||
// ─── 가격 포맷터 ──────────────────────────────────────────────────
|
||||
// 29_0000원 → "29만원" 포맷. 1000원 단위까지는 표기 안 함 (B2B 가격은 만원 단위)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user