論理削除 + 期限切れ自動パージ
:LiTarget: 用途
削除を deleted_at で論理化 → 30日後に物理削除。誤削除復活可能 + ストレージ節約。
:LiSparkle: 特徴
- deleted_at で論理削除
- 30日経過後 自動 purge
- 復元コマンド
- CSV 出力時除外
:LiCode: コード(コピペ用)
// 論理削除
function softDelete(item) { item.deleted_at = Date.now(); }
function restore(item) { delete item.deleted_at; }
// 期限切れパージ(30日)
const PURGE_DAYS = 30;
function purgeExpiredTrash(collection) {
const cutoff = Date.now() - PURGE_DAYS * 86400 * 1000;
const items = PD(collection, []);
const kept = items.filter(it => !it.deleted_at || it.deleted_at > cutoff);
if (kept.length !== items.length) setPD(collection, kept);
}
// アクティブ取得
function getActive(collection) {
return PD(collection, []).filter(x => !x.deleted_at);
}
:LiHandPointer: 使い方
対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。
:LiAlertCircle: 注意事項
- 依存パッケージを忘れず追加