/*
 * SCR-30 관람객 등록 관리 · SCR-32 리드 관리 샘플 데이터 (M10/M11).
 * ★ M10/M11 백엔드 실구현 완료(visitorApi 실배선). 화면은 정상 경로에서 실 API 를 소비하며, 본 데이터는 NETWORK/NOT_FOUND/NOT_IMPLEMENTED 강등 시에만 노출되는 오프라인 폴백("오프라인 — 샘플" 배지)이다.
 * ★ 보안 불변(PII 미노출): 이름·연락처·이메일은 이미 마스킹된 형태로만 보관/노출한다.
 *   실제 구현 시 원문 PII 는 서버가 보관하고 API 응답에서 마스킹하여 내려준다(N2/R10).
 */

// ── SCR-30 관람객 등록 대시보드 ──

export interface VisitorKpi {
  label: string;
  value: string;
  delta?: string;
  trend?: 'up' | 'down' | 'flat';
  ai?: boolean;
  sub?: string;
}

export const REG_KPIS: VisitorKpi[] = [
  { label: '사전등록', value: '12,480', delta: '+12.4%', trend: 'up' },
  { label: '체크인', value: '8,210', sub: '진행률 65.7%' },
  { label: '노쇼율', value: '12%', delta: '주의', trend: 'down' },
  { label: '바이어 비중', value: '34%', sub: '목표 30%' },
  { label: '리드 생성', value: '2,140', ai: true, sub: 'AI 예측 성과' },
];

export interface RegTrendPoint {
  label: string;
  preReg: number;
  checkIn: number;
}

/** 개장 D-14 ~ 당일 누적 사전등록/체크인 추이. */
export const REG_TREND: RegTrendPoint[] = [
  { label: 'D-14', preReg: 4200, checkIn: 0 },
  { label: 'D-12', preReg: 5600, checkIn: 0 },
  { label: 'D-10', preReg: 6800, checkIn: 0 },
  { label: 'D-7', preReg: 8300, checkIn: 0 },
  { label: 'D-5', preReg: 9700, checkIn: 0 },
  { label: 'D-3', preReg: 11050, checkIn: 0 },
  { label: 'D-1', preReg: 12100, checkIn: 1240 },
  { label: '당일', preReg: 12480, checkIn: 8210 },
];

export interface RegTypeSlice {
  name: string;
  value: number;
  color: string;
}

export const REG_TYPES: RegTypeSlice[] = [
  { name: '관람객', value: 62, color: '#0066B3' },
  { name: '바이어', value: 34, color: '#6D4AFF' },
  { name: 'VIP', value: 4, color: '#0E8A5F' },
];

export interface RegForm {
  id: string;
  name: string;
  active: boolean;
  count: number;
}

export const REG_FORMS: RegForm[] = [
  { id: 'general', name: '일반 참관객', active: true, count: 7740 },
  { id: 'buyer', name: '비즈니스 바이어', active: true, count: 4210 },
  { id: 'vip', name: 'VIP 초청', active: false, count: 530 },
];

export type RegVisitorType = 'visitor' | 'buyer' | 'vip';
export type CheckinState = 'done' | 'waiting' | 'cancelled';

export interface Registrant {
  id: string;
  /** 마스킹된 이름. */
  nameMasked: string;
  initial: string;
  type: RegVisitorType;
  company: string;
  registeredAt: string;
  checkin: CheckinState;
  badgeIssued: boolean;
}

export const REGISTRANTS: Registrant[] = [
  { id: 'v1', nameMasked: '김*희', initial: 'K', type: 'visitor', company: 'LG전자', registeredAt: '2026.10.12', checkin: 'done', badgeIssued: true },
  { id: 'v2', nameMasked: '이*준', initial: 'L', type: 'buyer', company: '삼성전자', registeredAt: '2026.10.14', checkin: 'waiting', badgeIssued: true },
  { id: 'v3', nameMasked: '박*서', initial: 'P', type: 'vip', company: '현대자동차', registeredAt: '2026.10.15', checkin: 'done', badgeIssued: true },
  { id: 'v4', nameMasked: '최*훈', initial: 'C', type: 'visitor', company: '개인 참관', registeredAt: '2026.10.15', checkin: 'cancelled', badgeIssued: false },
  { id: 'v5', nameMasked: '정*아', initial: 'J', type: 'buyer', company: '(주)미래기술', registeredAt: '2026.10.16', checkin: 'done', badgeIssued: true },
  { id: 'v6', nameMasked: '한*수', initial: 'H', type: 'visitor', company: '두산로보틱스', registeredAt: '2026.10.16', checkin: 'waiting', badgeIssued: true },
];

export const REG_TYPE_LABEL: Record<RegVisitorType, string> = {
  visitor: '관람객',
  buyer: '바이어',
  vip: 'VIP',
};

export const CHECKIN_LABEL: Record<CheckinState, string> = {
  done: '완료',
  waiting: '미입장',
  cancelled: '취소',
};

// ── SCR-32 리드 관리·AI 스코어링 ──

export const LEAD_KPIS: VisitorKpi[] = [
  { label: '총 리드', value: '342' },
  { label: '핫리드', value: '68', sub: 'AI 스코어 80+' },
  { label: '팔로업 대기', value: '120' },
  { label: '전환 추정', value: '24', ai: true },
];

export interface Lead {
  id: string;
  nameMasked: string;
  role: string;
  company: string;
  product: string;
  interest: number; // 1~5 별점
  score: number; // 0~100 AI 스코어
  collectedAt: string;
  /** 마스킹된 연락처(표기용). */
  phoneMasked: string;
  emailMasked: string;
  aiReasons: string[];
  activity: { text: string; at: string }[];
  followupDraft: string;
}

export const LEADS: Lead[] = [
  {
    id: 'l1',
    nameMasked: '김**',
    role: '구매 담당자',
    company: '(주)테크솔루션',
    product: '협동로봇 HR-A1',
    interest: 5,
    score: 87,
    collectedAt: '14:22:05',
    phoneMasked: '010-****-3021',
    emailMasked: 'kim***@techsol.co.kr',
    aiReasons: [
      '과거 유사 전시회 로봇 구매 이력 있음',
      '당사 부스 체류 시간 평균 대비 240% 높음',
      '기술 사양서(PDF) 다운로드 2회 기록',
    ],
    activity: [
      { text: '제품 카탈로그 QR 스캔', at: '오늘 14:22' },
      { text: '부스 내 HR-A1 구동 시연 참관', at: '오늘 14:15' },
    ],
    followupDraft:
      '안녕하세요, (주)테크솔루션 김** 팀장님.\n\nKINTEX 부스에 방문해주셔서 감사합니다. 관심을 보이셨던 협동로봇 HR-A1의 상세 기술 사양과 귀사 공정 최적화를 위한 커스텀 제안서를 준비했습니다. 다음 주 중 편하신 시간에 짧은 미팅이 가능하실까요?',
  },
  {
    id: 'l2',
    nameMasked: '이**',
    role: '기술 기획',
    company: '넥스트이노베이션',
    product: '스마트 물류 시스템',
    interest: 3,
    score: 65,
    collectedAt: '14:15:30',
    phoneMasked: '010-****-7742',
    emailMasked: 'lee***@nextinno.com',
    aiReasons: [
      '물류 자동화 세션 참석 이력',
      '부스 체류 시간 평균 수준',
    ],
    activity: [
      { text: '스마트 물류 데모 영상 시청', at: '오늘 14:15' },
      { text: '브로슈어 다운로드', at: '오늘 14:03' },
    ],
    followupDraft:
      '안녕하세요, 넥스트이노베이션 이** 님.\n\n스마트 물류 시스템에 관심 가져주셔서 감사합니다. 도입 사례집과 ROI 시뮬레이션 자료를 보내드립니다.',
  },
  {
    id: 'l3',
    nameMasked: '박**',
    role: '연구소장',
    company: '미래제조연구소',
    product: 'AI 비전 검사 모듈',
    interest: 4,
    score: 82,
    collectedAt: '14:02:11',
    phoneMasked: '010-****-1188',
    emailMasked: 'park***@fmlab.re.kr',
    aiReasons: [
      'AI 비전 검사 데모 3회 재방문',
      '구매 결정권자(연구소장) 직급',
      '견적 요청 폼 작성 완료',
    ],
    activity: [
      { text: '견적 요청 폼 제출', at: '오늘 14:02' },
      { text: 'AI 비전 모듈 상세 상담', at: '오늘 13:50' },
    ],
    followupDraft:
      '안녕하세요, 미래제조연구소 박** 소장님.\n\n요청하신 AI 비전 검사 모듈 견적서를 첨부드립니다. 파일럿 도입 프로그램도 안내드리겠습니다.',
  },
  {
    id: 'l4',
    nameMasked: '정**',
    role: '설비 담당',
    company: '글로벌테크',
    product: '자율주행 AMR',
    interest: 2,
    score: 44,
    collectedAt: '13:55:42',
    phoneMasked: '010-****-9003',
    emailMasked: 'jung***@globaltech.io',
    aiReasons: ['AMR 부스 단순 방문', '자료 열람 이력 없음'],
    activity: [{ text: '부스 QR 스캔', at: '오늘 13:55' }],
    followupDraft:
      '안녕하세요, 글로벌테크 정** 님.\n\n자율주행 AMR 소개 자료를 보내드립니다. 궁금하신 점이 있으시면 언제든 문의해 주세요.',
  },
  {
    id: 'l5',
    nameMasked: '강**',
    role: '인프라 엔지니어',
    company: 'SCT시스템',
    product: '클라우드 모니터링',
    interest: 1,
    score: 28,
    collectedAt: '13:48:19',
    phoneMasked: '010-****-2250',
    emailMasked: 'kang***@sctsys.kr',
    aiReasons: ['짧은 부스 체류', '경쟁사 부스 위주 관람'],
    activity: [{ text: '부스 QR 스캔', at: '오늘 13:48' }],
    followupDraft:
      '안녕하세요, SCT시스템 강** 님.\n\n클라우드 모니터링 솔루션 소개서를 보내드립니다.',
  },
];
