リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: カスタムマッピング
ピンへのリマインダー(通知メモ)設定機能の追加
## 1. 目的
チームメンバーが特定のピンに対して「次回訪問予定日」や「フォローアップ期限」などの日付付きメモを登録し、期限が近づいたピンを一覧で把握できるようにする。現地調査の再訪管理や作業期限の見落とし防止に役立てる。
## 2. 具体的な仕様
### 2-1. DBテーブル追加
```sql
CREATE TABLE pin_reminders (
id INT AUTO_INCREMENT PRIMARY KEY,
pin_id INT NOT NULL,
remind_date DATE NOT NULL,
memo TEXT NOT NULL,
is_done TINYINT(1) NOT NULL DEFAULT 0,
created_by VARCHAR(100) DEFAULT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (pin_id) REFERENCES pins(id) ON DELETE CASCADE
);
```
### 2-2. ピン詳細画面への追加
- ピン詳細モーダルの下部に「リマインダー」セクションを追加する。
- 入力欄:日付ピッカー(`<input type="date">`)+テキスト入力(最大200文字)+「追加」ボタン。
- 登録済みリマインダーをリスト表示(日付昇順)。各行に「完了」チェックボックスと「削除」ボタンを設置。
- 完了チェックを入れると `is_done=1` に更新し、該当行を取り消し線スタイルで表示する。
### 2-3. リマインダー一覧パネル(新規タブ or サイドパネル)
- サマリーダッシュボードに「リマインダー」タブを追加する。
- 表示内容:ピン名・リマインド日・メモ・完了状態。
- デフォルトは「未完了のみ」表示。「完了済みも表示」トグルで切替可能。
- 期限別に色分け:
- 本日以前(期限切れ)→ 赤背景
- 3日以内 → 橙背景
- それ以降 → 通常
- ピン名クリックで地図上の該当ピンにフォーカスし詳細モーダルを開く。
### 2-4. 地図上のバッジ表示
- 未完了リマインダーを持つピンのマーカーに小さな🔔アイコン(CSSオーバーレイ)を重ねて表示する。
- 期限切れのリマインダーがある場合はアイコンを赤色にする。
- 既存のクラスタリング・ヒートマップ表示との切替時はバッジを非表示にして干渉しない。
### 2-5. APIエンドポイント(PHP)
| メソッド | パス | 処理 |
|---|---|---|
| GET | `api/reminders.php?pin_id={id}` | 指定ピンのリマインダー一覧取得 |
| GET | `api/reminders.php` | 全リマインダー取得(一覧パネル用) |
| POST | `api/reminders.php` | 新規登録(pin_id, remind_date, memo) |
| PATCH | `api/reminders.php` | is_done 更新(id, is_done) |
| DELETE | `api/reminders.php?id={id}` | 削除 |
全エンドポイントは既存の合言葉認証セッションチェックを通す。
## 3. 既存機能との整合
- `pins` テーブルは変更しない。新テーブル `pin_reminders` を追加するのみ。
- ピン削除時は `ON DELETE CASCADE` で関連リマインダーも自動削除される。
- CSV/JSONエクスポートには今回リマインダーデータを含めない(既存フォーマットを維持)。将来対応として `reminders` キーを予約するコメントをエクスポートコードに記載するだけにとどめる。
- 多言語対応:新規追加する文言(「リマインダー」「期限」「完了」「削除」など)を既存の `lang` 配列に日本語・英語キーで追加する。
- スマホ対応:日付ピッカーはネイティブ `<input type="date">` を使用し、リスト行はフレックスレイアウトで折り返し表示に対応する。
チームメンバーが特定のピンに対して「次回訪問予定日」や「フォローアップ期限」などの日付付きメモを登録し、期限が近づいたピンを一覧で把握できるようにする。現地調査の再訪管理や作業期限の見落とし防止に役立てる。
## 2. 具体的な仕様
### 2-1. DBテーブル追加
```sql
CREATE TABLE pin_reminders (
id INT AUTO_INCREMENT PRIMARY KEY,
pin_id INT NOT NULL,
remind_date DATE NOT NULL,
memo TEXT NOT NULL,
is_done TINYINT(1) NOT NULL DEFAULT 0,
created_by VARCHAR(100) DEFAULT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (pin_id) REFERENCES pins(id) ON DELETE CASCADE
);
```
### 2-2. ピン詳細画面への追加
- ピン詳細モーダルの下部に「リマインダー」セクションを追加する。
- 入力欄:日付ピッカー(`<input type="date">`)+テキスト入力(最大200文字)+「追加」ボタン。
- 登録済みリマインダーをリスト表示(日付昇順)。各行に「完了」チェックボックスと「削除」ボタンを設置。
- 完了チェックを入れると `is_done=1` に更新し、該当行を取り消し線スタイルで表示する。
### 2-3. リマインダー一覧パネル(新規タブ or サイドパネル)
- サマリーダッシュボードに「リマインダー」タブを追加する。
- 表示内容:ピン名・リマインド日・メモ・完了状態。
- デフォルトは「未完了のみ」表示。「完了済みも表示」トグルで切替可能。
- 期限別に色分け:
- 本日以前(期限切れ)→ 赤背景
- 3日以内 → 橙背景
- それ以降 → 通常
- ピン名クリックで地図上の該当ピンにフォーカスし詳細モーダルを開く。
### 2-4. 地図上のバッジ表示
- 未完了リマインダーを持つピンのマーカーに小さな🔔アイコン(CSSオーバーレイ)を重ねて表示する。
- 期限切れのリマインダーがある場合はアイコンを赤色にする。
- 既存のクラスタリング・ヒートマップ表示との切替時はバッジを非表示にして干渉しない。
### 2-5. APIエンドポイント(PHP)
| メソッド | パス | 処理 |
|---|---|---|
| GET | `api/reminders.php?pin_id={id}` | 指定ピンのリマインダー一覧取得 |
| GET | `api/reminders.php` | 全リマインダー取得(一覧パネル用) |
| POST | `api/reminders.php` | 新規登録(pin_id, remind_date, memo) |
| PATCH | `api/reminders.php` | is_done 更新(id, is_done) |
| DELETE | `api/reminders.php?id={id}` | 削除 |
全エンドポイントは既存の合言葉認証セッションチェックを通す。
## 3. 既存機能との整合
- `pins` テーブルは変更しない。新テーブル `pin_reminders` を追加するのみ。
- ピン削除時は `ON DELETE CASCADE` で関連リマインダーも自動削除される。
- CSV/JSONエクスポートには今回リマインダーデータを含めない(既存フォーマットを維持)。将来対応として `reminders` キーを予約するコメントをエクスポートコードに記載するだけにとどめる。
- 多言語対応:新規追加する文言(「リマインダー」「期限」「完了」「削除」など)を既存の `lang` 配列に日本語・英語キーで追加する。
- スマホ対応:日付ピッカーはネイティブ `<input type="date">` を使用し、リスト行はフレックスレイアウトで折り返し表示に対応する。
💬 返信 (9)
🛠 開発を開始しました (機能追加 custom-mapping)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
[管理者]
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
[管理者]
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
[管理者]
📡 GitHub Actions の deploy workflow を再トリガーしました
PR #707 の merge から 139 分経過しても workflow run が見つからなかったため、手動で再起動しました。
通常 5〜10 分で完了します。
📡 GitHub Actions の deploy workflow を再トリガーしました
PR #707 の merge から 139 分経過しても workflow run が見つからなかったため、手動で再起動しました。
通常 5〜10 分で完了します。
[管理者]
📡 GitHub Actions の deploy workflow を再トリガーしました
PR #707 の merge から 169 分経過しても workflow run が見つからなかったため、手動で再起動しました。
通常 5〜10 分で完了します。
📡 GitHub Actions の deploy workflow を再トリガーしました
PR #707 の merge から 169 分経過しても workflow run が見つからなかったため、手動で再起動しました。
通常 5〜10 分で完了します。
[管理者]
❌ deploy workflow が 3 回失敗しました
手動対応が必要です。管理者にご連絡ください。
❌ deploy workflow が 3 回失敗しました
手動対応が必要です。管理者にご連絡ください。
[管理者]
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
⚠️ deploy workflow が失敗したため再起動しました
リトライ回数: 1/2
[自動復旧]
PR が作成されていないまま開発中状態が残っていたため、確認待ちに戻しました。
内容を確認し、もう一度「仕様を確定」すると再開発キューに戻ります。
PR が作成されていないまま開発中状態が残っていたため、確認待ちに戻しました。
内容を確認し、もう一度「仕様を確定」すると再開発キューに戻ります。
Echo
Iris