feat: media duplicate purge, part 1 of 3: persisted purge settings and the purge API

This commit is contained in:
fsylvain committed 2026-10-05 18:24:03 +02:00
1 parent 161ddc0f7d
commit e82d0ce254
25 files changed
+2459 -41

No files matched your search

@@ -0,0 +1,40 @@
package persistence
import (
domainPurge "RenewCMS/internal/domain/purge"
"RenewCMS/internal/infrastructure/persistence/mappers"
entity "RenewCMS/internal/infrastructure/persistence/models"
"errors"
"gorm.io/gorm"
)
const purgeSettingsRowID uint32 = 1
type PurgeSettingsRepository struct {
db *gorm.DB
}
var _ domainPurge.Repository = &PurgeSettingsRepository{}
func NewPurgeSettingsRepository(db *gorm.DB) *PurgeSettingsRepository {
return &PurgeSettingsRepository{db}
}
func (p *PurgeSettingsRepository) Get() (domainPurge.Settings, error) {
var model entity.PurgeSettings
err := p.db.First(&model, purgeSettingsRowID).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
return domainPurge.DefaultSettings(), nil
}
if err != nil {
return domainPurge.Settings{}, err
}
return mappers.PurgeSettingsToDomain(model), nil
}
func (p *PurgeSettingsRepository) Save(settings domainPurge.Settings) error {
model := mappers.PurgeSettingsToModel(settings)
model.ID = purgeSettingsRowID
return p.db.Save(&model).Error
}