diff options
| author | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-03-10 21:24:24 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-03-10 21:24:24 +0100 |
| commit | 8e157f56d600fc11b2204f7033e56db7017d5574 (patch) | |
| tree | f8092c47d79eb3cde351c269ab962125931af9fb /xp/member.go | |
| parent | 698292db49387bbc056b811c9fac5670bf8607e1 (diff) | |
feat(db): delete copaing 48 hours after soft delete
Diffstat (limited to 'xp/member.go')
| -rw-r--r-- | xp/member.go | 17 |
1 files changed, 17 insertions, 0 deletions
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 |
