# PackLog Base Withdrawal and Data Deletion Version: 2026-06-02 ## 方針 PackLog Baseでは、退会申請後すぐに完全削除するのではなく、30日間の猶予期間を置きます。 理由: - 誤操作による退会を戻せるようにする - ポイント、共有データ、DB貢献の整合性を確認する - 不正利用や規約違反対応に必要な最小限の確認期間を確保する ## 退会申請時 退会申請が行われたら、次の状態にします。 - `profiles.account_status = 'deletion_requested'` - `profiles.deletion_requested_at = now()` - `profiles.delete_after_at = now() + interval '30 days'` - プロフィールを非公開化 - Pack、Gear、Field Log、山計画、キャンプ場計画、ユーザー作成ルートを非公開化 - 新規ポイント加算を停止 ## 30日以内 ユーザーは、30日以内であれば退会申請を取り消せます。 取消時: - `account_status = 'active'` - `deletion_requested_at = null` - `delete_after_at = null` 公開状態は、退会申請前の状態を完全復元するのではなく、安全側に倒して必要なものだけユーザーが再公開します。 退会、削除、復帰に関する問い合わせが必要な場合は `support@packlogbase.com` で受け付けます。 ## 30日経過後 30日経過後、管理者またはサービスロールのバッチ処理で個人データを削除または匿名化します。 削除対象: - プロフィール本文 - My Gear - PackとPack Items - Field Log - 山計画 - キャンプ場計画 - ユーザー作成ルート - 個人に紐づくコメント、メモ、未承認提案 匿名化して保持する可能性があるもの: - 承認済みDB貢献の履歴 - ポイント台帳の集計に必要な最小限の履歴 - 不正防止や監査に必要な最小限の履歴 匿名化後は、ユーザー名、メールアドレス、プロフィール文、個人の行動ログとは紐づかない形にします。 ## 実装メモ アプリ側では、ユーザー本人が呼び出せるRPCとして次を用意します。 - `request_account_deletion()` - `cancel_account_deletion()` 30日後の削除は危険な操作なので、本人がブラウザから直接実行できないようにし、サービスロールまたは管理者のみが `purge_due_deleted_accounts()` を実行します。