琴平デジタル町民
未決事項と判断材料
今すぐ動作には支障ないが、運用入り前に三好氏 / 運営事務局で確定すべき項目。
最終更新: 2018/10/20 10:46:40 JST
琴平デジタル町民 — 未決事項と判断材料
最終更新: 2026-05-05
目的: 「今決めなくてもサービスは動くが、運用入り前に三好氏 / 運営事務局で確定すべき項目」を1枚に。
コードに既に書かれている挙動と、検討すべき選択肢を併記する。
公開URLは /c/kotohira/demo/decisions-pending で誰でも閲覧可。
1. 送金で受け取ったポイントの有効期限
現状の実装(既に動いているが「これでよいか」を確定したい)
src/lib/ledger.ts に以下のロジックが入っている。
TRANSFER_IN の lot.expiresAt = now + community.pointExpiryMonths
つまり、送金で受け取った瞬間に新しい lot として再発行され、有効期限が「いま」から N か月後にリセットされる。これは既に「B-ii リフレッシュ仕様」と呼ばれて稼働中。
コードコメント該当箇所:
src/lib/ledger.ts:88-90pool exempt type (CASHBACK / INVITE_REWARD / TRANSFER_IN) も期限対象に含める。
pool 免除 (= 上限カウント外) と「lot として有効期限を持つか」は独立した判断。
kotohira では「流通でリフレッシュ」を実現するため TRANSFER_IN にも expiresAt を付ける。
判断材料となる選択肢
| 選択肢 | 期限の決まり方 | メリット | デメリット |
|---|---|---|---|
| A. 現状維持(B-ii 流通リフレッシュ) | 受け取った瞬間に now+N か月 | 町内で循環すれば実質無期限化 → 利用促進に効く。「貯め込まずに使え」というメッセージとも整合 | 失効間際のポイントを互いに送り合うだけで延命できる「リング送金」のリスク(同じ人が同じ人へ何度も送る運用上の検知が必要) |
| B. 送り元の lot 期限を引き継ぐ | 受け取った lot の expiresAt = 送り元の expiresAt | 「期限のあるポイントが期限のないポイントになる」リング送金が原理的に不可能 | 「もうすぐ失効するから誰かに渡そう」という動機が消える。コードと DB 両方の実装変更が必要 |
| C. 期限なし(流通中は永続) | TRANSFER_IN の expiresAt = null | 「町民の手で持っている限り消えない」感覚。説明が一番シンプル | 発行体の負債が積み上がる。会計・税務上の整理が必要 |
推奨判断
- Phase 1(〜年度末): A(現状維持)。リング送金の有無は監視ダッシュボードで観測する。
- Phase 2 以降: 観測結果を見て B か C を検討。リングが頻発するなら B、発生しなければ A 継続。
決定が必要な質問
Q1. 「現状の B-ii リフレッシュ仕様(A)でリリースしてよいか?」
Q2. 「リング送金が観測された場合、何回/何日以内に同一相手往復したらアラートを出すか?」(例: 7日以内3往復で社内通知)
2. 添付ファイルの保存期間(Phase 2 で実装済)
現状の実装
- 送金時に画像5枚(合計5MB)/動画1本(10MB)/PDF1個(5MB)まで添付可
PointTransaction.attachmentsExpireAt = now + 30日- 30日経過で日次 cron が Cloudinary から実体を削除し、metadata.attachments を空配列に
- 受信側 UI には期限切れ後「📎 添付の保存期間が終了しました」と表示
判断が必要な質問
Q3. 30日で十分か?(短い: 14日 / 標準: 30日 / 長い: 90日)
Q4. 「重要な添付は本人がローカルに保存しておく」運用で問題ないか?(saveできる UI を将来追加するかどうか)
3. 会員区分ごとの権限(最重要・現在ふわふわ)
別ページの 「会員制度マトリクス」 (/c/kotohira/demo/membership-matrix) に詳細を整理した。
このセクションでは「特に判断が必要な項目」だけ列挙する。
判断が必要な質問
Q5. citizen(無料会員)はイベント作成できるか?
現状: 不可(OWNER/ADMIN/ORGANIZER のみ)。citizen を作成可にするか、premium に開放するか、現状維持か。Q6. premium に独自の機能を持たせるか?
現状コード上は「投票権」「限定サロン」「先行予約」「専用クーポン」が UI に書かれている(mypage の "プレミアム限定" セクション)が、実際の機能フックは未接続。Q7. 送金は citizen 同士に限るか? premium 限定にするか?
現状: citizen 同士で可(LINE 連携必須)。「premium しか送れない」「guest にも送れる」など仕様変更の余地あり。Q8. OWNER(運営事務局)が自分でポイントを発行できる量に上限を設けるか?
現状:Community.pointPoolMax(プール上限)はあるが、運営による無制限発行は技術的に可能。ガバナンス上の縛りが必要か。
4. デジタル町民 NFT(会員証)の正式運用方針
現状の実装
NftMintRecordに MockNftProvider で記録だけ作成(実 chain 未連携)- mypage に NFT カード表示はあるが、譲渡・取引機能なし
判断が必要な質問
Q9. NFT を「ただの会員証画像」として運用するか、Cardano/Kyoso 等で本格運用するか。
Q10. 期限切れ NFT(年度更新失敗等)は履歴として残すか、削除するか。
参考リンク
- 公開 WBS: /c/kotohira/demo/wbs
- 会員制度マトリクス: /c/kotohira/demo/membership-matrix
- ポイント仕様コメント:
src/lib/ledger.ts:80-110 - 添付仕様:
src/lib/transfer-attachments.ts - 会員ティア判定:
src/lib/roles/tier.ts