/* ============================================================================
 * 서명전에 — 약관 / 개인정보 처리방침 / 업데이트 소식 BottomSheet
 *
 *  · window.openLegalSheet("terms" | "privacy" | "updates") 호출 시
 *    overlay-extension 의 BottomSheet 렌더러로 풀스크린 가까운 시트를 띄운다.
 *  · 콘텐츠는 모듈 내 상수로 들고 있어 별도 라우팅 없이도 어디서든 열 수 있다.
 *  · 회원가입 직후 동의 화면 / Account · Help 의 진입점에서 모두 동일 라벨로 사용.
 *  · CTA 는 "확인했어요" 단일 버튼 (one-button) — 동의가 아닌 단순 열람.
 *  · 본문은 스크롤 가능 div + 14px 본문 + 헤더 ~ 본문 간 spacing 16px.
 *
 *  ⚠️ 본 약관 문구는 베타 단계 임시 문안. 정식 출시 전에 법무 검토 필요.
 *  · 사업자 정보는 사업자등록증(2026.04.21 발급) 기준으로 반영:
 *      말리부오렌지 / 백승호 / 746-75-00666 / 종로구 필운대로6길 17-6, 2층
 *  · 통신판매업 신고번호는 관할 구청(종로구청) 접수 후 추가해야 함.
 *  · 이메일(help@, privacy@signjeon.app)은 도메인 확보·메일 라우팅 셋업 필요.
 *  · 환불·해지·면책은 한국 전자상거래법·표준약관 형식을 따라 정리했지만,
 *    실제 PG 계약 / 토스 미니앱 정책과 교차 확인 필요.
 * ========================================================================== */

(function () {
  /* --------------------------------------------------------------------------
   * 콘텐츠
   * ------------------------------------------------------------------------ */
  const TERMS_TEXT = `
서명전에 이용약관 (v1.3 · 2026.04 시행)

[사업자 정보]
- 상호: 말리부오렌지 (개인사업자)
- 대표자: 백승호
- 사업자등록번호: 746-75-00666
- 사업장 소재지: 서울특별시 종로구 필운대로6길 17-6, 2층 (통인동)
- 업태/종목: 정보통신업 / 응용 소프트웨어 개발 및 공급업
- 통신판매업 신고: 신고 예정 (관할 구청 접수 후 표기 예정)
- 고객센터: help@signjeon.app  (평일 10:00~18:00, 영업일 1일 내 회신)

제1조 (목적)
이 약관은 말리부오렌지(이하 “회사”)가 제공하는 “서명전에” 서비스(이하 “서비스”)
의 이용 조건과 절차, 회사와 이용자(이하 “회원”)의 권리·의무·책임 사항을 규정하는
것을 목적으로 합니다.

제2조 (서비스 내용)
회사는 회원이 제출한 임대차·근로 등 계약서 이미지 또는 텍스트를 분석해 불리한
조항·법적 위험 신호·누락 사항을 알려주는 AI 분석 서비스를 제공합니다. 본 서비스는
법률 자문이 아니며, 정확도를 보증하지 않습니다.

제3조 (회원가입과 계정)
회원가입은 토스 ID 또는 이메일 인증으로 이루어집니다. 회원은 본인의 계정 정보를
타인에게 양도·대여할 수 없으며, 부정 사용에 대한 책임은 회원 본인에게 있습니다.

제4조 (크레딧과 결제)
1) 분석 1회당 회사가 정한 크레딧이 차감됩니다.
2) 크레딧 결제는 토스페이를 통해 이루어지며, 부가세는 표시 가격에 포함됩니다.
3) 미사용 크레딧은 결제일로부터 7일 이내에 한해 전액 환불 가능하며, 일부 사용
   분이 있을 경우 환불액에서 차감 후 환불됩니다.
4) 회사는 사전 공지 후 크레딧 가격을 변경할 수 있습니다.

제5조 (회원의 의무)
회원은 다음 행위를 해서는 안 됩니다.
- 타인의 계약서나 신상정보를 동의 없이 업로드하는 행위
- 서비스의 분석 결과를 무단 복제·재판매·기계학습 학습 데이터로 활용하는 행위
- 자동화된 방법으로 비정상적으로 다량의 분석 요청을 보내는 행위

제6조 (회사의 면책)
회사는 분석 결과의 정확성·완전성·최신성에 대해 보증하지 않으며, 본 서비스의
분석 결과만으로 발생한 법적·재산적 손해에 대해 책임을 지지 않습니다. 중요한
계약은 변호사·공인중개사 등 전문가의 검토를 받으시기 바랍니다.

제7조 (서비스 변경·중단)
회사는 운영상·기술상의 사유로 서비스를 변경하거나 일시 중단할 수 있으며, 이
경우 사전 공지합니다(긴급한 경우 사후 공지).

제8조 (해지)
회원은 언제든지 [계정 → 회원 탈퇴]에서 계정을 탈퇴할 수 있으며, 미사용 크레딧이
있다면 본 약관 제4조에 따라 환불받을 수 있습니다. 탈퇴 후 30일 이내에 모든
분석 기록과 개인정보가 영구 삭제됩니다.

제9조 (분쟁 해결)
이 약관과 관련한 분쟁은 대한민국 법령을 따르며, 관할 법원은 민사소송법상의 보통
재판적 법원으로 합니다.

부칙
본 약관은 2026년 4월 21일부터 시행합니다.
(2026년 4월 21일: 사업자 등록 및 최초 시행)
`.trim();

  const PRIVACY_TEXT = `
서명전에 개인정보 처리방침 (v1.3 · 2026.04 시행)

[개인정보 처리자]
- 상호: 말리부오렌지
- 대표자: 백승호
- 사업자등록번호: 746-75-00666
- 사업장 주소: 서울특별시 종로구 필운대로6길 17-6, 2층 (통인동)

말리부오렌지(이하 “회사”)는 정보주체의 자유와 권리를 보호하기 위해 「개인정보
보호법」 등 관계 법령을 준수하며, 다음과 같이 개인정보를 처리합니다.

1. 수집하는 개인정보 항목
- 회원 식별: 이메일, 토스 ID, 닉네임
- 결제: 결제 수단 종류, 결제 금액, 결제 일시 (카드 전체번호는 토스페이먼츠가
  보유하며 회사는 보유하지 않습니다)
- 서비스 이용 기록: 분석 일시, 분석한 계약서 종류·페이지 수, 위험 등급
- 자동 수집: 접속 기기 정보, OS, 앱 버전, 접속 IP, 광고 식별자

2. 개인정보 처리 목적
- 회원 인증과 본인 식별
- AI 분석 서비스 제공 및 결과 저장
- 결제와 환불 처리, 영수증 발송
- 서비스 개선과 통계 분석 (식별 정보 제거 후 활용)
- 부정 이용 방지와 법령상 의무 이행

3. 계약서 원문 처리 원칙 (가장 중요)
- 회원이 업로드한 계약서 이미지·PDF·텍스트 원본은 분석이 끝나는 즉시 서버에서
  완전 삭제합니다(보관하지 않음).
- 분석 결과 요약(위험 등급, 발췌된 핵심 조항 인용, AI 의견)만 회원 본인 계정에
  암호화 저장됩니다.
- AI 학습 데이터로 사용되지 않습니다.

4. 보유 및 이용 기간
- 회원 정보: 회원 탈퇴 시까지
- 분석 결과 요약: 회원 탈퇴 후 30일 이내 삭제
- 결제·전자상거래 기록: 「전자상거래법」에 따라 5년 보관

5. 제3자 제공
회사는 회원의 동의 없이 개인정보를 제3자에게 제공하지 않습니다. 단, 다음 경우는
예외입니다.
- 법령에 의한 요구가 있는 경우 (수사기관의 영장 등)
- 회원이 사전에 동의한 경우

6. 처리 위탁
- 결제 처리: 토스페이먼츠
- 클라우드 인프라: AWS Korea 리전
- AI 추론: Anthropic (분석 요청 시 계약서 텍스트가 일시적으로 전송되며, 처리 후
  보관되지 않음)

7. 정보주체의 권리
회원은 언제든지 자신의 개인정보를 열람·정정·삭제·처리정지 요청할 수 있습니다.
계정 화면 또는 help@signjeon.app 으로 요청해 주세요.

8. 개인정보 보호 책임자
- 책임자: 백승호 (대표 겸임)
- 연락처: privacy@signjeon.app
- 사업장: 서울특별시 종로구 필운대로6길 17-6, 2층 (통인동)
- 일반 문의: help@signjeon.app  (평일 10:00~18:00, 영업일 1일 내 회신)

9. 개정 이력
- v1.3 (2026.04.01): AI 학습 미사용 명시, 보유 기간 단축
- v1.2 (2026.02.15): 토스 ID 인증 항목 추가
- v1.0 (2026.01.10): 최초 시행
`.trim();

  const UPDATES_TEXT = `
업데이트 소식

🆕 v1.3 (2026.04.15)
- 텍스트 붙여넣기 분석 추가 — 카톡·문자로 받은 계약서를 사진 없이 바로 분석
- 분석 정확도 향상 (전세사기 체크리스트 23개 항목 전수 적용)
- 다크 모드 토글 제거 (앱인토스 라이트 모드 가이드 준수)
- 결제 화면 토스페이 단독 모드로 단순화

v1.2 (2026.03.20)
- 무제한 베타 멤버십 시작 — 4월까지 모든 회원 무제한 분석
- 위험 조항 카드에 원문 위치 강조 표시 추가
- 분석 결과 PDF 내보내기 (공인중개사·가족 공유용)

v1.1 (2026.02.28)
- 근로 계약서 실험 지원 추가 (정식 지원 전 베타)
- 카메라 촬영 흐름 개선 — 가장자리 자동 감지

v1.0 (2026.01.10)
- 첫 정식 버전 출시 — 전세·월세 임대차 계약서 분석

다음 버전에서 만나요
- 프리랜서·매매 계약서 정식 지원
- 분석 결과 카카오톡 바로 공유
- 음성으로 위험 조항 읽어주기
`.trim();

  const TITLE_BY_KIND = {
    terms:    "이용약관",
    privacy:  "개인정보 처리방침",
    updates:  "업데이트 소식",
  };

  const TEXT_BY_KIND = {
    terms:    TERMS_TEXT,
    privacy:  PRIVACY_TEXT,
    updates:  UPDATES_TEXT,
  };

  /* --------------------------------------------------------------------------
   * 본문 렌더 — 줄바꿈 기준으로 단락 분리. 빈 줄은 큰 spacing, 한 줄은 작은 spacing.
   * 제목처럼 보이는 라인(숫자. / 제N조 / 부칙 / 🆕 / "다음 버전에서 만나요")은
   * 약간 굵게 강조해 가독성을 높인다.
   * ------------------------------------------------------------------------ */
  function LegalBody({ text }) {
    const lines = String(text || "").split("\n");
    return React.createElement(
      "div",
      {
        style: {
          fontSize: 14,
          lineHeight: 1.6,
          color: "var(--label)",
          padding: "4px 4px 24px",
          whiteSpace: "pre-wrap",
          wordBreak: "keep-all",
        },
      },
      lines.map(function (raw, i) {
        const line = raw;
        if (line.trim() === "") {
          return React.createElement("div", { key: i, style: { height: 8 } });
        }
        const isHeading =
          /^제\s*\d+조/.test(line) ||
          /^\d+\./.test(line) ||
          /^부칙/.test(line) ||
          /^🆕/.test(line) ||
          /^v\d/i.test(line) ||
          /^다음 버전/.test(line);
        return React.createElement(
          "div",
          {
            key: i,
            style: {
              fontWeight: isHeading ? 600 : 400,
              color: isHeading ? "var(--label)" : "var(--label)",
              opacity: isHeading ? 1 : 0.92,
              marginTop: isHeading ? 12 : 0,
              marginBottom: isHeading ? 4 : 0,
            },
          },
          line
        );
      })
    );
  }

  /* --------------------------------------------------------------------------
   * window.openLegalSheet(kind)
   * ------------------------------------------------------------------------ */
  function openLegalSheet(kind) {
    const k = (kind || "terms").toLowerCase();
    const title = TITLE_BY_KIND[k] || TITLE_BY_KIND.terms;
    const text  = TEXT_BY_KIND[k]  || TEXT_BY_KIND.terms;

    const ox = window.__tdsOverlay;
    if (!ox || typeof ox.push !== "function") {
      // overlay-extension 미로드 시 fallback — 새 창으로 plain text 표시
      if (window.console && console.warn) console.warn("[LegalSheet] overlay-extension 미로드, fallback");
      try {
        const w = window.open("", "_blank");
        if (w) w.document.body.innerText = title + "\n\n" + text;
      } catch (_) {}
      return;
    }
    if (typeof ox.ensureMount === "function") ox.ensureMount();

    const body = React.createElement(LegalBody, { text: text });
    ox.push("bottomsheet", {
      title: title,
      children: body,
      // 약관/방침은 본문이 길어 확장 스크롤 허용
      maxHeight: Math.min(window.innerHeight - 80, 620),
      expandedMaxHeight: window.innerHeight - 24,
      expandBottomSheet: true,
      expandBottomSheetWhenScroll: true,
      // CTA — 한 버튼 ("확인했어요"). __variant 패턴은 useBottomSheet 와 동일.
      __variant: "one-button",
      confirmLabel: "확인했어요",
    }, null);
  }

  window.openLegalSheet = openLegalSheet;
})();
