import { config } from 'dotenv';
// Load .env.local
config({ path: '.env.local' });

const NEW_SITE_ID = process.env.SITE_ID || process.env.RANKTRACTION_SITE_ID;

if (!NEW_SITE_ID) {
  console.error('Missing SITE_ID in .env.local');
  process.exit(1);
}

const aboutUsData = {
  content: [
    { type: "SiteHeader", props: { id: "header" } },
    { type: "AboutPageHeader", props: { id: "about-header", title: "運営元について", subtitle: "ten-sura-game.com について" } },
    { type: "ContentCardZone", props: { id: "about-card-zone" } },
    { type: "SiteFooter", props: { id: "footer" } }
  ],
  root: { props: { title: "About Us" } },
  zones: {
    "about-card-zone:about-content": [
      { type: "AboutMissionVision", props: { id: "mission", title: "ミッション・ビジョン", missionText: "ten-sura-game.com は、「転生したらスライムだった件（転スラ）」関連ゲームを愛するすべてのプレイヤーに、最高品質の攻略情報を日本語でお届けすることをミッションとしています。", visionText: "私たちのビジョンは、転スラゲームコミュニティにおける最も信頼される情報プラットフォームとなり、プレイヤーが効率的かつ戦略的にゲームを楽しめる環境を構築することです。正確で分かりやすい情報を通じて、すべてのプレイヤーの攻略体験を最大限にサポートいたします。" } },
      { type: "AboutWhyWeExist", props: { id: "why-we-exist", title: "当サイトが存在する理由", descriptionTop: "転スラ関連ゲームは豊富なコンテンツと奥深い戦略性を持つ一方で、膨大な情報量の中から必要な攻略情報を見つけることが困難な場合があります。\n特に以下のような課題を抱えるプレイヤーが多く存在します：", challenges: [{ text: "リセマラで狙うべきキャラクターが分からない" }, { text: "イベント攻略の効率的な進め方を知りたい" }, { text: "キャラクター育成の優先順位が判断できない" }, { text: "最新アップデートの環境変化に対応したい" }, { text: "高難易度コンテンツのクリア方法を探している" }], descriptionBottom: "当サイトは、これらの課題を解決するために設立されました。散在する情報を体系化し、信頼性の高い攻略データを一元的に提供することで、プレイヤーの貴重な時間を節約し、ゲームの楽しさを最大化することを目指しています。" } },
      { type: "AboutWhatWeOffer", props: { id: "what-we-offer", title: "提供コンテンツ", description: "当サイトでは、転スラゲームプレイヤーに向けた以下のカテゴリの攻略情報を提供しています。", categories: [{ title: "攻略情報", text: "ストーリー攻略、ボス攻略、高難易度コンテンツのクリア方法を詳細に解説します。" }, { title: "キャラクター評価", text: "全キャラクターの性能評価、スキル解説、おすすめ編成を提供します。" }, { title: "リセマラ・ガチャ情報", text: "最新リセマラランキング、ガチャの引きどき、狙うべきキャラクターをお伝えします。" }, { title: "イベント・アップデート", text: "最新イベントの攻略法、報酬情報、アップデート内容をいち早くお届けします。" }, { title: "初心者・育成ガイド", text: "ゲームを始めたばかりの方に向けた基礎知識、効率的な育成方法、序盤の進め方を丁寧に解説します。", fullWidth: true }] } },
      { type: "AboutTargetAudience", props: { id: "target-audience", title: "対象読者", descriptionTop: "当サイトは、以下のようなユーザーを主な対象としています。", audiences: [{ text: "転スラ関連ゲームを日常的にプレイしている方" }, { text: "キャラクター評価やイベント攻略情報を積極的に検索される方" }, { text: "リセマラ情報を参考に効率よくゲームを始めたい方" }, { text: "高難易度コンテンツの攻略に挑戦されている方" }, { text: "最新アップデート情報をいち早く入手したい方" }], descriptionBottom: "16歳から35歳の日本在住のプレイヤーを中心に、転スラゲームをより深く楽しみたいすべての方にご活用いただけるコンテンツを目指しています。" } },
      { type: "AboutOrganizationInfo", props: { id: "organization", title: "運営情報", rows: [{ label: "サイト名", value: "ten-sura-game.com" }, { label: "運営", value: "ten-sura-game.com 編集部" }, { label: "URL", value: "https://ten-sura-game.com", isLink: true }], contactText: "サイト内お問い合わせフォームよりご連絡ください" } }
    ]
  }
};

const privacyPolicyData = {
  content: [
    { type: "SiteHeader", props: { id: "header" } },
    { type: "LegalPageHeader", props: { id: "legal-header", title: "プライバシーポリシー", subtitle: "最終更新日：2026年6月4日" } },
    { type: "ContentCardZone", props: { id: "legal-card-zone" } },
    { type: "SiteFooter", props: { id: "footer" } }
  ],
  root: { props: { title: "Privacy Policy" } },
  zones: {
    "legal-card-zone:about-content": [
      { type: "LegalSection", props: { id: "sec1", title: "1. 個人情報の取得について", contentTop: "当サイトでは、以下の場合に個人情報を取得することがあります。", listItems: [{ text: "メールマガジン（ニュースレター）への登録時：メールアドレス" }, { text: "お問い合わせフォームのご利用時：お名前、メールアドレス" }, { text: "サイトアクセス時に自動取得する情報：IPアドレス、Cookieデータ、閲覧ページ情報、ブラウザ情報、アクセス日時" }] } },
      { type: "LegalSection", props: { id: "sec2", title: "2. 個人情報の利用目的", contentTop: "取得した個人情報は、以下の目的で利用いたします。", listItems: [{ text: "お問い合わせに対する回答および関連する連絡のため" }, { text: "メールマガジンの配信、最新の攻略情報やアップデート情報のお知らせのため" }, { text: "当サイトの利用状況の分析およびサービス改善のため" }, { text: "不正アクセスやスパム行為の防止、セキュリティ向上のため" }] } },
      { type: "LegalSection", props: { id: "sec3", title: "3. 個人情報の第三者提供", contentTop: "当サイトは、以下の場合を除き、ご本人の同意を得ずに個人情報を第三者に提供することはありません。", listItems: [{ text: "法令に基づく場合" }, { text: "人の生命、身体または財産の保護のために必要があり、ご本人の同意を得ることが困難な場合" }, { text: "公衆衛生の向上または児童の健全な育成のために特に必要があり、ご本人の同意を得ることが困難な場合" }] } },
      { type: "LegalSection", props: { id: "sec4", title: "4. Cookie（クッキー）およびアクセス解析ツールの利用", contentTop: "当サイトでは、サイトの利用状況を把握するために以下のアクセス解析ツールを利用しています。\n\nこれらのツールは、トラフィックデータの収集のためにCookieを使用しています。トラフィックデータは匿名で収集されており、個人を特定するものではありません。\n\nお使いのブラウザの設定により、Cookieの無効化を行うことができます。" } },
      { type: "LegalSection", props: { id: "sec5", title: "5. 広告の配信について", contentTop: "当サイトでは、第三者配信の広告サービスを利用する場合があります。広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookieを使用することがあります。" } },
      { type: "LegalSection", props: { id: "sec6", title: "6. 免責事項", contentTop: "当サイトで提供している攻略情報やキャラクター評価などのコンテンツは、正確な情報を提供するよう努めておりますが、その正確性や安全性を保証するものではありません。", highlightBoxTitle: "ご注意", highlightBoxText: "ゲームのアップデートや仕様変更により、当サイトの情報が古くなる、または正確でなくなる場合があります。当サイトの情報を利用して生じたいかなる損害についても、当サイトは一切の責任を負いかねますので、あらかじめご了承ください。" } },
      { type: "LegalSection", props: { id: "sec7", title: "7. 著作権について", contentTop: "当サイトに掲載されているテキスト、画像、動画などのコンテンツの著作権は、当サイトまたは各権利所有者に帰属します。無断転載、複製、改変、配布などを固く禁じます。", highlightBoxTitle: "ゲーム画像の引用について", highlightBoxText: "当サイトで使用しているゲーム内の画像やキャラクター名の著作権および商標権は、各ゲームの開発元・運営元（株式会社バンダイナムコエンターテインメント等）に帰属します。当サイトは、攻略情報の提供を目的として引用の範囲内で使用しておりますが、権利者様からの削除要請があった場合は、速やかに対応いたします。" } },
      { type: "LegalSection", props: { id: "sec8", title: "8. 外部サイトへのリンク", contentTop: "当サイトには、外部サイトへのリンクが含まれている場合があります。リンク先のサイトで提供される情報、サービス等について当サイトは一切の責任を負いません。リンク先のサイトのプライバシーポリシーをご確認ください。" } },
      { type: "LegalSection", props: { id: "sec9", title: "9. プライバシーポリシーの変更", contentTop: "当サイトは、法令の改正やサイト運営の方針変更に伴い、本プライバシーポリシーを事前の予告なく変更することがあります。変更後のプライバシーポリシーは、当サイトに掲載された時点で効力を生じるものとします。" } },
      { type: "LegalSection", props: { id: "sec10", title: "10. お問い合わせ窓口", contentTop: "本プライバシーポリシーや個人情報の取り扱い、またはサイト内容に関するお問い合わせは、当サイトの「お問い合わせフォーム」よりご連絡ください。" } }
    ]
  }
};

async function seedPage(path: string, data: any) {
  const { db } = await import('../lib/db');
  const { homepageContent } = await import('../shared/schema');
  const siteId = `${NEW_SITE_ID}${path}`;
  try {
    await db.insert(homepageContent)
      .values({
        siteId,
        content: { puckData: data },
        draftContent: { puckData: data },
        updatedAt: new Date()
      })
      .onConflictDoUpdate({
        target: homepageContent.siteId,
        set: {
          content: { puckData: data },
          draftContent: { puckData: data },
          updatedAt: new Date()
        }
      });
    console.log(`Seeded: ${siteId}`);
  } catch (error) {
    console.error(`Failed to seed ${siteId}:`, error);
  }
}

async function main() {
  await seedPage('/about-us', aboutUsData);
  await seedPage('/privacy-policy', privacyPolicyData);
  console.log('Done!');
  process.exit(0);
}

main();
