feat: media duplicate purge, part 2 of 3: the automatic purge scheduler (Go only)

This commit is contained in:
fsylvain committed 2026-10-05 19:44:15 +02:00
1 parent e82d0ce254
commit 1a55a39425
18 files changed
+1389 -39

No files matched your search

@@ -5,6 +5,7 @@ import (
"RenewCMS/internal/infrastructure/persistence/mappers"
entity "RenewCMS/internal/infrastructure/persistence/models"
"errors"
"time"
"gorm.io/gorm"
)
@@ -38,3 +39,19 @@ func (p *PurgeSettingsRepository) Save(settings domainPurge.Settings) error {
model.ID = purgeSettingsRowID
return p.db.Save(&model).Error
}
func (p *PurgeSettingsRepository) SaveLastRun(at time.Time, merged int, articlesUpdated int) error {
result := p.db.Model(&entity.PurgeSettings{}).Where("id = ?", purgeSettingsRowID).Updates(map[string]any{
"last_purge_at": at,
"last_purge_merged": merged,
"last_purge_articles_updated": articlesUpdated,
})
if result.Error != nil || result.RowsAffected > 0 {
return result.Error
}
settings := domainPurge.DefaultSettings()
settings.LastPurgeAt = &at
settings.LastPurgeMerged = merged
settings.LastPurgeArticlesUpdated = articlesUpdated
return p.Save(settings)
}