From 3824fba8e5ee0bcd6bd339fa879fcafb2984be65 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 21 Jun 2025 12:00:18 +0800 Subject: [PATCH] :necktie: Auto removal for expired relationships --- DysonNetwork.Sphere/AppDatabase.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/DysonNetwork.Sphere/AppDatabase.cs b/DysonNetwork.Sphere/AppDatabase.cs index 277b6d3..632039c 100644 --- a/DysonNetwork.Sphere/AppDatabase.cs +++ b/DysonNetwork.Sphere/AppDatabase.cs @@ -313,9 +313,23 @@ public class AppDatabaseRecyclingJob(AppDatabase db, ILogger x.ExpiredAt != null && x.ExpiredAt <= now) + .ExecuteDeleteAsync(); + logger.LogDebug("Removed {Count} records of expired relationships.", affectedRows); + // Expired permission group members + affectedRows = await db.PermissionGroupMembers + .Where(x => x.ExpiredAt != null && x.ExpiredAt <= now) + .ExecuteDeleteAsync(); + logger.LogDebug("Removed {Count} records of expired permission group members.", affectedRows); + logger.LogInformation("Deleting soft-deleted records..."); - var now = SystemClock.Instance.GetCurrentInstant(); var threshold = now - Duration.FromDays(7); var entityTypes = db.Model.GetEntityTypes()