/* global window */
// Community / Letters / Events / Glossary / Rankings / Bookmarks data

// Reader letters — magazine-style "reader's voice" column
const READER_LETTERS = [
  {
    id: "L-026",
    issue: "VOL.09",
    date: "2026-04-08",
    name: "T.K.",
    age: 38, role: "個人事業主 / 京都",
    title: "夜間ベンチの検証、本当に助かりました",
    body: "夜間にWordPressサイトのレスポンスが落ちる問題、原因がVPSのIO待ちだと特定できたのは御誌の特集のおかげです。乗り換え後、月のサーバー代は1,200円上がりましたが、深夜の予約フォーム送信エラーが消えました。\n\n編集部のベンチが「数字で説得してくれる」のは、お客さんに料金値上げをお願いするときにも役立ちました。",
    relatedSlug: "vps-conoha-vs-xserver-night-2026",
    featured: true,
  },
  {
    id: "L-025",
    issue: "VOL.09",
    date: "2026-04-05",
    name: "M.H.",
    age: 42, role: "サロン経営 / 名古屋",
    title: "予約システム特集、6軒で導入が決まりました",
    body: "美容室の店長仲間6人で読んでます。野口さんの「現場の本音」記事を持って商工会の勉強会で議題にしたら、5月までに6軒全員が同じシステムに移行することに決まりました。値引き交渉までしてくれた業者さんにも、御誌の名前を出させていただきました。失礼でなければよいのですが。",
    relatedSlug: "reservation-tools-2026-spring",
    featured: false,
  },
  {
    id: "L-024",
    issue: "VOL.08",
    date: "2026-03-22",
    name: "(匿名希望)",
    age: 51, role: "中小企業役員",
    title: "「広告ではない」と言い切ってくれる安心感",
    body: "これまで他のWebメディアで「比較1位」と紹介されたサービスを2回続けて契約し、2回続けてアフィ目当ての提灯記事だったとわかりました。御誌の[PR]タグの明示と、編集部評価の言語化は、本当にありがたい仕組みです。\n\n月800円、対価として安いと思っています。",
    featured: true,
  },
  {
    id: "L-023",
    issue: "VOL.08",
    date: "2026-03-15",
    name: "Y.S.",
    age: 29, role: "Webディレクター / 東京",
    title: "若手ディレクターにも読みやすい",
    body: "業界に入って3年目です。一次情報を集めた記事は、上司への提案資料の根拠としてそのまま使えるレベルでした。次は「ドメインWHOIS情報の正しい読み方」みたいな入門特集をお願いしたいです。",
    featured: false,
  },
  {
    id: "L-022",
    issue: "VOL.08",
    date: "2026-03-10",
    name: "K.O.",
    age: 35, role: "EC運営 / 福岡",
    title: "Shopify連載、ありがとうございました",
    body: "林さんの起業1年目連載、月一回の楽しみでした。「数字を出す」勇気のある記事は、自分の経営判断の参考になりました。",
    featured: false,
  },
  {
    id: "L-021",
    issue: "VOL.07",
    date: "2026-02-25",
    name: "R.A.",
    age: 47, role: "個人開発者 / 札幌",
    title: "AI記事、過熱しすぎていない点が良いです",
    body: "他媒体のAI記事は煽り過ぎで読むのが疲れます。岡田さんの記事は淡々と検証データだけが並ぶので、信頼できます。",
    featured: false,
  },
  {
    id: "L-020",
    issue: "VOL.07",
    date: "2026-02-18",
    name: "(匿名希望)",
    age: 33, role: "経営企画 / 大阪",
    title: "SaaS見直しに使わせてもらいました",
    body: "三宅編集長の「SaaS疲れ」記事を読んで、社内ツール21個を一覧化したら年間180万円の重複契約が見つかりました。経理に怒られましたが、御誌に救われました。",
    featured: true,
  },
  {
    id: "L-019",
    issue: "VOL.06",
    date: "2026-01-28",
    name: "S.W.",
    age: 26, role: "学生・起業準備中",
    title: "学生にも手の届く価格設定",
    body: "月800円、学生でも続けられる価格にしてくれて感謝です。創業前のいま、御誌だけが信頼している媒体です。",
    featured: false,
  },
];

// Events / Webinars archive
const EVENTS = [
  {
    id: "evt-2026-05",
    date: "2026-05-18",
    time: "19:00-21:00",
    title: "編集部夜会 #07 — VPS夜間ベンチの裏側",
    type: "オフライン",
    location: "東京・渋谷 (定員30名)",
    fee: "サブスク会員 ¥0 / 一般 ¥3,000",
    speakers: ["naoto-miyake", "kentaro-sato"],
    desc: "VOL.09 の VPS 夜間ベンチ特集。実際の検証環境を編集部が公開しながら、「広告では書けなかった本当の話」を語ります。",
    status: "募集中",
    capacity: 30,
    applied: 22,
    cover: "/story-01.png",
  },
  {
    id: "evt-2026-04",
    date: "2026-04-12",
    time: "20:00-21:30",
    title: "ウェビナー — Shopify、月商100万円までの距離",
    type: "オンライン",
    location: "Zoom (定員200名)",
    fee: "完全無料",
    speakers: ["haruka-hayashi"],
    desc: "副編集長 林 春香が、自身のEC立ち上げ実体験を1.5時間で全公開。質疑応答30分。",
    status: "終了 (録画あり)",
    capacity: 200,
    applied: 187,
    cover: "/story-03.png",
  },
  {
    id: "evt-2026-03",
    date: "2026-03-08",
    time: "14:00-17:00",
    title: "編集部夜会 #06 — SaaS棚卸しワークショップ",
    type: "オフライン",
    location: "京都・四条 (定員20名)",
    fee: "サブスク会員 ¥3,000 / 一般 ¥6,000",
    speakers: ["naoto-miyake", "haruka-hayashi", "ryosuke-okada"],
    desc: "参加者全員でSaaS契約一覧を持ち寄り、編集部と一緒に棚卸し。終了後の懇親会込み。",
    status: "終了",
    capacity: 20, applied: 20,
    cover: "/story-09.png",
  },
  {
    id: "evt-2026-02",
    date: "2026-02-15",
    time: "19:00-20:30",
    title: "ウェビナー — 確定申告SaaS、現場の選び方",
    type: "オンライン", location: "Zoom (定員300名)",
    fee: "完全無料", speakers: ["yuki-tanaka", "naoto-miyake"],
    desc: "freee × マネーフォワードのリアル比較。経営者向け。",
    status: "終了 (録画あり)", capacity: 300, applied: 281,
    cover: "/story-05.png",
  },
  {
    id: "evt-2026-01",
    date: "2026-01-25",
    time: "19:00-21:00",
    title: "編集部夜会 #05 — 新年会・編集会議公開",
    type: "オフライン", location: "東京・神保町 (定員40名)",
    fee: "招待制",
    speakers: ["naoto-miyake", "haruka-hayashi", "kentaro-sato", "ryosuke-okada", "miho-noguchi"],
    desc: "VOL.06の編集会議を読者に公開。年間ベスト記事の選評も。",
    status: "終了", capacity: 40, applied: 40,
    cover: "/story-08.png",
  },
  {
    id: "evt-2025-12",
    date: "2025-12-14",
    time: "19:00-20:30",
    title: "ウェビナー — 今年契約したツール・解約したツール",
    type: "オンライン", location: "Zoom (定員500名)",
    fee: "完全無料", speakers: ["naoto-miyake", "ryosuke-okada"],
    desc: "編集部全員の年末棚卸し。リアルな失敗談も含めて公開。",
    status: "終了 (録画あり)", capacity: 500, applied: 432,
    cover: "/story-04.png",
  },
];

// Glossary — terminology dictionary
const GLOSSARY = [
  // S
  { term: "SLA", reading: "エス・エル・エー", category: "クラウド/インフラ", short: "Service Level Agreement。サービス提供者が顧客に約束する稼働率・応答時間などの品質基準。", body: "VPSやSaaSの契約書に「月間稼働率99.99%以上を保証」と書かれている数値がSLA。違反時の返金規定とセットで明記されているのが通例。\n\n編集部が記事中で「実測SLA」と書く場合、契約書上の保証値ではなく、編集部が3ヶ月以上計測した実稼働率を指します。", relatedSlugs: ["vps-conoha-vs-xserver-night-2026"] },
  { term: "SSL/TLS", reading: "エス・エス・エル", category: "ドメイン/セキュリティ", short: "通信を暗号化するプロトコル。現在はTLSが主流だが、慣習的にSSLと呼ぶ。", body: "Webサイトが「https://」で始まり鍵マークが表示されるのは、SSL/TLSによる暗号化が成立しているサイン。証明書には DV / OV / EV の3レベルがあり、用途で使い分ける。" },
  { term: "SaaS", reading: "サース", category: "SaaS/クラウド", short: "Software as a Service。クラウド経由で提供されるソフトウェアの総称。", body: "Slack、Notion、freeeなど月額課金で利用するソフトウェアはほぼSaaS。データはサービス提供者のクラウドに保存される。" },
  // W
  { term: "WHOIS", reading: "フーイズ", category: "ドメイン", short: "ドメインの登録者情報を検索できる公開データベース。", body: ".jpドメインの場合、JPRSのサイトで登録者名・組織名・登録年月日・有効期限が確認できる。プライバシー保護サービスを使うと、登録者情報を非公開にできる。" },
  { term: "WordPress", reading: "ワードプレス", category: "CMS", short: "世界で最も普及しているCMS。Webサイトの約4割が利用。", body: "オープンソース・無料。テーマやプラグインで機能拡張可能。レンタルサーバー各社が「WordPress簡単インストール」を用意している。" },
  // V
  { term: "VPS", reading: "ブイ・ピー・エス", category: "サーバー", short: "Virtual Private Server。1台の物理サーバーを仮想的に分割し、専用領域として提供するサービス。", body: "共有サーバーより自由度が高く、専用サーバーより安価。月1,000円〜10,000円程度の価格帯が中心。\n\nrootログインが可能で、好きなOSやミドルウェアを入れられる。" },
  // C
  { term: "CDN", reading: "シー・ディー・エヌ", category: "クラウド/インフラ", short: "Content Delivery Network。世界各地のサーバーから最寄り拠点でコンテンツを配信する仕組み。", body: "CloudflareやFastlyが代表例。画像やJS/CSSの配信高速化と、DDoS攻撃対策の二重の役割を果たす。" },
  { term: "Conversion (CVR)", reading: "コンバージョン", category: "マーケティング", short: "Webサイトでの成果達成。CVRはConversion Rateで、訪問者のうち成果に至った割合。", body: "EC では購入、SaaSでは申込、メディアではメルマガ登録など。一般に1-3%が標準で、5%を超えると優秀。" },
  // P
  { term: "PV / UU", reading: "ピー・ブイ / ユー・ユー", category: "マーケティング", short: "PV=ページビュー、UU=ユニークユーザー。Webサイトの規模を示す基本指標。", body: "1人の読者が3ページ見れば 1UU・3PV と数える。一般にPV÷UU=平均閲覧ページ数(2〜4が標準)。" },
  // E
  { term: "ECサイト", reading: "イーシー・サイト", category: "EC", short: "Electronic Commerce。インターネット上で商品やサービスを販売するWebサイト。", body: "プラットフォーム型(Shopify、BASE)、モール型(楽天、Amazon)、自社構築型(WordPress+WooCommerce)に分類される。" },
  // A
  { term: "AI画像生成", reading: "エー・アイ", category: "AI", short: "テキストプロンプトから画像を生成するAIサービスの総称。", body: "Midjourney、Stable Diffusion、DALL-Eなどが代表。商用利用可否はサービスごとに異なるため、規約確認が必須。" },
  { term: "API", reading: "エー・ピー・アイ", category: "開発", short: "Application Programming Interface。ソフト同士が情報をやり取りする窓口。", body: "「APIキー」は、APIを呼び出すための認証用文字列。漏洩すると悪用されるため、コード上で公開しないのが原則。" },
  // I
  { term: "IPS / IDS", reading: "アイ・ピー・エス", category: "セキュリティ", short: "侵入防御 / 侵入検知システム。サーバーへの不正アクセスを監視・遮断する仕組み。", body: "VPSではWAF (Web Application Firewall) と組み合わせて運用するのが一般的。" },
  // F
  { term: "FAQ", reading: "エフ・エー・キュー", category: "編集用語", short: "Frequently Asked Questions。よくある質問。", body: "Webサイトでは構造化データ (FAQPage) でマークアップすると、検索結果にリッチスニペットが出る。" },
  // M
  { term: "MAU / DAU", reading: "エム・エー・ユー", category: "SaaS指標", short: "Monthly / Daily Active Users。月次/日次のアクティブユーザー数。", body: "DAU/MAU比 (DAU÷MAU) はサービスの粘着性指標。20%以上が優秀、40%でTOP水準。" },
  // R
  { term: "RPO / RTO", reading: "アール・ピー・オー", category: "クラウド/インフラ", short: "Recovery Point Objective / Recovery Time Objective。バックアップ要件を表す2指標。", body: "RPO=どこまでのデータ損失を許容できるか(直近1時間まで等)、RTO=何時間で復旧するか。サーバー選定時の重要指標。" },
  // T
  { term: "TLS 1.3", reading: "ティー・エル・エス", category: "ドメイン/セキュリティ", short: "通信暗号化プロトコルの最新版。2018年RFC化。", body: "TLS 1.2比でハンドシェイクが速く、よりセキュア。レンタルサーバーの2025年以降の新規契約はTLS 1.3デフォルトが主流。" },
  // K
  { term: "KPI", reading: "ケー・ピー・アイ", category: "マーケティング", short: "Key Performance Indicator。重要業績評価指標。", body: "ECなら売上・CVR・客単価、メディアならPV・滞在時間・回遊率など、業種ごとに異なる。" },
];

// Popular rankings (monthly)
const RANKINGS = {
  articles: [
    { rank: 1, slug: "vps-conoha-vs-xserver-night-2026", title: "深夜帯のVPS応答性、本当の差。", author: "kentaro-sato", views: 41280, change: "+3" },
    { rank: 2, slug: "freee-vs-mf-2026-spring", title: "freee vs マネーフォワード——2026年春の決着。", author: "yuki-tanaka", views: 32150, change: "↑NEW" },
    { rank: 3, slug: "shopify-1m-revenue-real", title: "Shopifyで月商100万円まで、本当の距離。", author: "haruka-hayashi", views: 28420, change: "-1" },
    { rank: 4, slug: "ai-image-tools-2026", title: "AI画像生成5サービス、実用検証 [PR含む]", author: "ryosuke-okada", views: 24080, change: "-1" },
    { rank: 5, slug: "saas-fatigue-2026", title: "SaaS疲れの正体——契約棚卸しの方法。", author: "naoto-miyake", views: 22310, change: "+2" },
    { rank: 6, slug: "rsv-tools-saloon-2026", title: "サロン経営者が選ぶ予約システム5選。", author: "miho-noguchi", views: 19840, change: "-2" },
    { rank: 7, slug: "domain-jp-vs-com-2026", title: ".jp と .com、いまどちらを取るか。", author: "haruka-hayashi", views: 17220, change: "↑NEW" },
    { rank: 8, slug: "wordpress-speedup-2026", title: "WordPress高速化、もう一度基本から。", author: "kentaro-sato", views: 15640, change: "-3" },
    { rank: 9, slug: "ec-base-stores-2026", title: "BASE vs STORES、個人ECの最初の選択。", author: "haruka-hayashi", views: 14180, change: "-1" },
    { rank: 10, slug: "headless-cms-2026", title: "Headless CMS、その本当のコスト。", author: "kentaro-sato", views: 12940, change: "↑NEW" },
  ],
  services: [
    { rank: 1, name: "ConoHa VPS", category: "サーバー", change: "+1", note: "VOL.09特集で再上昇" },
    { rank: 2, name: "Xserver", category: "サーバー", change: "-1" },
    { rank: 3, name: "freee", category: "SaaS/会計", change: "↑NEW" },
    { rank: 4, name: "Shopify", category: "EC", change: "0" },
    { rank: 5, name: "お名前.com", category: "ドメイン", change: "0" },
    { rank: 6, name: "Cloudflare", category: "CDN/セキュリティ", change: "+2" },
    { rank: 7, name: "Notion", category: "SaaS", change: "-1" },
    { rank: 8, name: "Stable Diffusion XL", category: "AI", change: "↑NEW" },
    { rank: 9, name: "BASE", category: "EC", change: "-2" },
    { rank: 10, name: "Salonboard", category: "予約/サロン", change: "-1" },
  ],
  tags: [
    { rank: 1, slug: "vps", label: "VPS", articles: 41 },
    { rank: 2, slug: "wordpress", label: "WordPress", articles: 38 },
    { rank: 3, slug: "ec", label: "EC", articles: 29 },
    { rank: 4, slug: "saas", label: "SaaS", articles: 27 },
    { rank: 5, slug: "ai", label: "AI", articles: 24 },
    { rank: 6, slug: "domain", label: "ドメイン", articles: 19 },
    { rank: 7, slug: "shopify", label: "Shopify", articles: 17 },
    { rank: 8, slug: "freee", label: "freee", articles: 11 },
    { rank: 9, slug: "rsv", label: "予約システム", articles: 10 },
    { rank: 10, slug: "ssl", label: "SSL/TLS", articles: 8 },
  ],
};

// Bookmarks (mock — for /bookmarks page)
const BOOKMARKS = [
  { slug: "vps-conoha-vs-xserver-night-2026", savedAt: "2026-04-08T22:14", folder: "サーバー検討中", note: "見積もり比較表のスクショ保存済み" },
  { slug: "freee-vs-mf-2026-spring", savedAt: "2026-04-04T10:33", folder: "確定申告", note: "5月の経理ミーティング前に再読" },
  { slug: "saas-fatigue-2026", savedAt: "2026-03-29T15:12", folder: "経営", note: "経理に相談" },
  { slug: "shopify-1m-revenue-real", savedAt: "2026-03-21T09:48", folder: "EC", note: "" },
  { slug: "domain-jp-vs-com-2026", savedAt: "2026-03-15T19:01", folder: "ブランド戦略", note: "新規事業で .jp 取得検討" },
  { slug: "wordpress-speedup-2026", savedAt: "2026-02-28T14:22", folder: "サーバー検討中", note: "Cloudflare設定箇所メモ" },
  { slug: "ai-image-tools-2026", savedAt: "2026-02-19T08:55", folder: "クリエイティブ", note: "" },
  { slug: "headless-cms-2026", savedAt: "2026-02-08T17:31", folder: "ブックマーク", note: "次のリニューアル参考" },
];

window.cynixCommunityData = { READER_LETTERS, EVENTS, GLOSSARY, RANKINGS, BOOKMARKS };
