PackLog Baseへ戻る
# 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()` を実行します。