// diagnosis.jsx — バックエンドからの診断結果のサンプルペイロード // 実際の本番では Flutter 側 or fetch でこの形のJSONを受け取る想定 const SAMPLE_DIAGNOSIS = { insight: { headline: "一人の時間に没頭して、新しい刺激と心地よさの中で自分がレベルアップしていく感覚", summary: "あなたが欲しいのは、商品そのものというより、", }, topDesires: [ { key: "achievement", label: "成果を出したい・達成感がほしい", score: 0.43 }, { key: "competence", label: "できることを増やしたい・上達したい", score: 0.40 }, { key: "stimulation", label: "新しい刺激がほしい・退屈から抜け出したい", score: 0.40 }, ], ranking: [ { rank: 1, key: "achievement", label: "成果を出したい・達成感がほしい", score: 0.43 }, { rank: 2, key: "competence", label: "できることを増やしたい・上達したい", score: 0.40 }, { rank: 3, key: "stimulation", label: "新しい刺激がほしい", score: 0.40 }, { rank: 4, key: "hedonism", label: "気持ちよさ・快適さがほしい", score: 0.40 }, { rank: 5, key: "security", label: "安心・安定がほしい", score: 0.30 }, { rank: 6, key: "experience", label: "記憶に残る体験がほしい", score: 0.29 }, { rank: 7, key: "prevention", label: "失敗や損失を避けたい", score: 0.28 }, { rank: 8, key: "immediate_affect", label: "買った瞬間の高揚感がほしい", score: 0.28 }, { rank: 9, key: "private_use", label: "自分だけの世界を充実させたい", score: 0.28 }, { rank: 10, key: "automation", label: "面倒を自動で任せたい", score: 0.25 }, { rank: 11, key: "promotion", label: "成長したい・理想に近づきたい", score: 0.20 }, { rank: 12, key: "premium", label: "最初から良いものを選びたい", score: 0.15 }, { rank: 13, key: "durable_affect", label: "長く続く満足感がほしい", score: 0.15 }, { rank: 14, key: "status_power", label: "周囲に影響を与えたい・評価されたい", score: 0.08 }, { rank: 15, key: "object", label: "手元に残るモノがほしい", score: 0.07 }, { rank: 16, key: "service", label: "やってもらえるサービスがほしい", score: 0.07 }, { rank: 17, key: "self_direction", label: "自分らしくありたい・創造性を活かしたい", score: 0.06 }, { rank: 18, key: "one_time", label: "一度の体験で満足したい", score: 0.06 }, { rank: 19, key: "autonomy", label: "自分で選びたい・自由でいたい", score: 0.00 }, { rank: 20, key: "relatedness", label: "人とつながりたい・認められたい", score: 0.00 }, { rank: 21, key: "benevolence", label: "身近な人の役に立ちたい", score: 0.00 }, { rank: 22, key: "craft", label: "こだわって自分で作り上げたい", score: 0.00 }, { rank: 23, key: "social_visible", label: "人から見られる自分を変えたい", score: 0.00 }, { rank: 24, key: "trial", label: "まずは低リスクで試したい", score: 0.00 }, { rank: 25, key: "habit", label: "習慣として続けたい", score: 0.00 }, ], analysis: { title: "買う理由", body: "あなたは「自分の内側が変わる実感」にお金を払うタイプです。人に見せるためではなく、自分自身が心地よく刺激を受けて、体や頭がバージョンアップしていく感覚を求めています。安心感もある程度大事にしつつ、未知の体験には積極的に飛び込みたい。飽きてもいいから今の高揚感を優先する直感型で、「記憶に残る体験」に惹かれやすいです。", }, antiPatterns: { title: "刺さりにくい商品", items: [ "人に見せることが前提のもの(SNS映え、ブランド品など)", "手間をかけて作り上げる系(DIY、ハンドメイドなど)", "人との交流が主目的のもの(コミュニティ型サービスなど)", ], }, // === 楽天アフィリエイト連携用の商品データ === // バックエンドから受け取る想定のJSON構造 // imageUrl: 楽天の画像CDN URL(取れない時は null → ジャンルアイコンにフォールバック) // affiliateUrl: 楽天アフィリエイトIDを含んだ最終遷移先URL // genre: フォールバック画像の分岐用(gadget/cosme/book/home/food/fashion/experience/wellness) // matchScore: 0-1, この商品が診断結果にどれだけマッチしているか // matchReason: 診断結果との繋がりを示す短文 // matchedDesires: 診断パラメータkey配列(チップ表示) products: [ { itemCode: "rakuten:sixpad-footfit3", name: "SIXPAD Foot Fit 3 Heat 足裏EMS 温熱機能搭載", shopName: "SIXPAD公式ショップ", price: 49800, imageUrl: "uploads/product_1_1.jpg", imageUrls: ["uploads/product_1_1.jpg", "uploads/product_1_2.jpg"], genre: "wellness", hue: 30, affiliateUrl: "https://hb.afl.rakuten.co.jp/hgc/PLACEHOLDER/?pc=https://item.rakuten.co.jp/sixpad/footfit3/", matchScore: 0.94, matchReason: "ソファに座ったまま足裏を鍛えられる。一人時間の没入を邪魔せず、身体がコンディショニングされていく実感が日々積み重なる", matchedDesires: ["competence", "private_use", "hedonism"], }, { itemCode: "rakuten:tential-bakune", name: "TENTIAL BAKUNE Dry リカバリーウェア 一般医療機器", shopName: "TENTIAL公式", price: 13200, imageUrl: "uploads/product_2_1.jpg", imageUrls: ["uploads/product_2_1.jpg", "uploads/product_2_2.jpg"], genre: "wellness", hue: 220, affiliateUrl: "https://hb.afl.rakuten.co.jp/hgc/PLACEHOLDER/?pc=https://item.rakuten.co.jp/tential/bakune-dry/", matchScore: 0.88, matchReason: "着て寝るだけで身体が回復する医療機器ウェア。意識せずに毎日コンディションが整う、自分に静かに効いてくる感覚", matchedDesires: ["hedonism", "private_use", "competence"], }, { itemCode: "rakuten:powerbreathe-plus", name: "POWERbreathe Plus 呼吸筋トレーナー 重負荷モデル", shopName: "POWERbreathe公式", price: 9680, imageUrl: "uploads/product_3_1.jpg", imageUrls: ["uploads/product_3_1.jpg", "uploads/product_3_2.jpg"], genre: "fitness", hue: 160, affiliateUrl: "https://hb.afl.rakuten.co.jp/hgc/PLACEHOLDER/?pc=https://item.rakuten.co.jp/powerbreathe/plus/", matchScore: 0.82, matchReason: "1日30回×2セットで呼吸筋を鍛える。負荷を上げていける数値化された上達体験。鍛えた分だけ確実にパフォーマンスが変わる", matchedDesires: ["achievement", "competence", "stimulation"], }, { itemCode: "rakuten:renpho-eyemassager", name: "RENPHO アイマスク 目元マッサージャー 温感ヒーター搭載", shopName: "RENPHO公式", price: 7980, imageUrl: "uploads/product_4_1.jpg", imageUrls: ["uploads/product_4_1.jpg", "uploads/product_4_2.jpg"], genre: "wellness", hue: 280, affiliateUrl: "https://hb.afl.rakuten.co.jp/hgc/PLACEHOLDER/?pc=https://item.rakuten.co.jp/renpho/eyemassager/", matchScore: 0.76, matchReason: "視界を完全に塞いで音と熱だけになる15分。スマホから強制的に切り離される、現代における究極の一人時間", matchedDesires: ["hedonism", "private_use", "experience"], }, { itemCode: "rakuten:sea-crystals-epsom", name: "シークリスタル エプソムソルト 10kg 国産 入浴剤", shopName: "シークリスタルス公式", price: 3680, imageUrl: "uploads/product_5_1.jpg", imageUrls: ["uploads/product_5_1.jpg", "uploads/product_5_2.jpg"], genre: "wellness", hue: 200, affiliateUrl: "https://hb.afl.rakuten.co.jp/hgc/PLACEHOLDER/?pc=https://item.rakuten.co.jp/seacrystals/epsom10kg/", matchScore: 0.72, matchReason: "湯船に溶かすだけで温泉化する硫酸マグネシウム。何分浸かっても飽きない、感覚が静かに変わっていく没入時間", matchedDesires: ["hedonism", "private_use", "stimulation"], }, ], meta: { note: "商品情報は2026年5月時点のリサーチに基づきます。価格・在庫は変動します。", }, }; window.SAMPLE_DIAGNOSIS = SAMPLE_DIAGNOSIS;