From 8e157f56d600fc11b2204f7033e56db7017d5574 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 10 Mar 2025 21:24:24 +0100 Subject: feat(db): delete copaing 48 hours after soft delete --- xp/member.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'xp/member.go') diff --git a/xp/member.go b/xp/member.go index 016eb5f..2f8d074 100644 --- a/xp/member.go +++ b/xp/member.go @@ -204,6 +204,23 @@ func (c *Copaing) Reset() { gokord.DB.Where("guild_id = ? AND discord_id = ?", c.GuildID, c.DiscordID).Delete(c) } +func (c *Copaing) AfterDelete(db *gorm.DB) error { + id := c.ID + dID := c.DiscordID + gID := c.GuildID + utils.NewTimer(48*time.Hour, func(stop chan struct{}) { + if err := db.Unscoped().Where("id = ?", id).Delete(c).Error; err != nil { + utils.SendAlert( + "xp/member.go - Removing copaing from database", err.Error(), + "discord_id", dID, + "guild_id", gID, + ) + } + stop <- struct{}{} + }) + return nil +} + func getRedisClient() (*redis.Client, error) { if redisClient == nil { var err error -- cgit v1.2.3