リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: LunchSpin ランチルーレット
「また今度リスト」スヌーズ機能の追加
## 1. 目的
ルーレット結果が出た際に「今日は気分じゃないけど近いうちに食べたい」という候補を一時的に除外し、指定日数後に自動で復活させる仕組みを提供する。これにより「同じものが続けて出る」ストレスを軽減しつつ、食べたい候補を捨てずに済む。
## 2. 具体的な仕様
### 2-1. UIトリガー
- ルーレットが止まり結果が表示されるモーダル内に、既存の「もう一度」ボタンの横へ **「また今度 🕐」ボタン** を追加する。
- ボタンタップで小さなドロップダウン(またはボトムシート)が開き、スヌーズ期間を選択させる:**「明日」「3日後」「1週間後」**。
### 2-2. データ管理
- スヌーズ情報は `localStorage` の既存マイリストデータに `snoozeUntil: "YYYY-MM-DD"` フィールドを追記する形で保存する(新規キー不要、既存構造を拡張)。
- プリセット候補にスヌーズがかかった場合は、同じ構造でスヌーズ専用の `localStorage` キー `lunchspin_snooze` に `{id, label, snoozeUntil}` を配列で保持する。
### 2-3. ルーレット動作への影響
- フィルター適用後、ルーレット対象リストを構築する既存ロジックの直後に「`snoozeUntil` が今日以降の候補を除外する」処理を1ステップ追加するだけ。既存フィルター処理は変更しない。
- スヌーズ期限日を過ぎた候補は自動的に通常対象へ戻る(アプリ起動時に `snoozeUntil <= 今日` のエントリを削除)。
### 2-4. スヌーズ管理画面
- 既存のマイリスト画面の末尾に折りたたみセクション **「また今度リスト(N件)」** を追加する。
- 各行に候補名・復活予定日・「今すぐ解除」ボタンを表示。
- スヌーズ中の候補はマイリストの通常リストでも薄いグレー表示+「🕐 ○月○日まで休憩中」バッジを付けて視覚的に区別する。
### 2-5. グループモードとの整合
- スヌーズは個人の `localStorage` にのみ保存し、URLパラメータには含めない。グループ共有URLを受け取った他ユーザーのスヌーズ設定には一切干渉しない。
## 3. 既存機能との整合(壊さない点)
- マイリストのデータ構造は既存フィールドを維持したままフィールドを追加するだけで、既存の追加・編集・削除・ON/OFFは動作変更なし。
- ルーレット本体のSVGアニメーション・効果音・30日履歴・QRコード生成ロジックは一切変更しない。
- スヌーズ候補が除外されルーレット対象が0件になる場合は、既存の「フィルター結果が0件」警告トーストをそのまま再利用し「スヌーズ中の候補を含めると○件あります」という補足テキストを1行追加するだけ。
ルーレット結果が出た際に「今日は気分じゃないけど近いうちに食べたい」という候補を一時的に除外し、指定日数後に自動で復活させる仕組みを提供する。これにより「同じものが続けて出る」ストレスを軽減しつつ、食べたい候補を捨てずに済む。
## 2. 具体的な仕様
### 2-1. UIトリガー
- ルーレットが止まり結果が表示されるモーダル内に、既存の「もう一度」ボタンの横へ **「また今度 🕐」ボタン** を追加する。
- ボタンタップで小さなドロップダウン(またはボトムシート)が開き、スヌーズ期間を選択させる:**「明日」「3日後」「1週間後」**。
### 2-2. データ管理
- スヌーズ情報は `localStorage` の既存マイリストデータに `snoozeUntil: "YYYY-MM-DD"` フィールドを追記する形で保存する(新規キー不要、既存構造を拡張)。
- プリセット候補にスヌーズがかかった場合は、同じ構造でスヌーズ専用の `localStorage` キー `lunchspin_snooze` に `{id, label, snoozeUntil}` を配列で保持する。
### 2-3. ルーレット動作への影響
- フィルター適用後、ルーレット対象リストを構築する既存ロジックの直後に「`snoozeUntil` が今日以降の候補を除外する」処理を1ステップ追加するだけ。既存フィルター処理は変更しない。
- スヌーズ期限日を過ぎた候補は自動的に通常対象へ戻る(アプリ起動時に `snoozeUntil <= 今日` のエントリを削除)。
### 2-4. スヌーズ管理画面
- 既存のマイリスト画面の末尾に折りたたみセクション **「また今度リスト(N件)」** を追加する。
- 各行に候補名・復活予定日・「今すぐ解除」ボタンを表示。
- スヌーズ中の候補はマイリストの通常リストでも薄いグレー表示+「🕐 ○月○日まで休憩中」バッジを付けて視覚的に区別する。
### 2-5. グループモードとの整合
- スヌーズは個人の `localStorage` にのみ保存し、URLパラメータには含めない。グループ共有URLを受け取った他ユーザーのスヌーズ設定には一切干渉しない。
## 3. 既存機能との整合(壊さない点)
- マイリストのデータ構造は既存フィールドを維持したままフィールドを追加するだけで、既存の追加・編集・削除・ON/OFFは動作変更なし。
- ルーレット本体のSVGアニメーション・効果音・30日履歴・QRコード生成ロジックは一切変更しない。
- スヌーズ候補が除外されルーレット対象が0件になる場合は、既存の「フィルター結果が0件」警告トーストをそのまま再利用し「スヌーズ中の候補を含めると○件あります」という補足テキストを1行追加するだけ。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (lunchspin))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「LunchSpin ランチルーレット」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=lunchspin
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/lunchspin/
ご利用ありがとうございます!
ご要望いただいた「LunchSpin ランチルーレット」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=lunchspin
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/lunchspin/
ご利用ありがとうございます!
Echo
Iris