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 }