feat: activity log backend foundation

This commit is contained in:
fsylvain committed 2026-10-06 20:35:03 +02:00
1 parent 8907bb49fe
commit 50b1649965
74 files changed
+5949 -239

No files matched your search

@@ -0,0 +1,50 @@
package useCases
import (
"RenewCMS/internal/domain/audit"
"context"
)
type GetActivityRetentionUseCase struct {
settings audit.SettingsRepository
}
func NewGetActivityRetentionUseCase(settings audit.SettingsRepository) *GetActivityRetentionUseCase {
return &GetActivityRetentionUseCase{settings}
}
func (g *GetActivityRetentionUseCase) GetActivityRetention() (audit.Settings, error) {
return g.settings.Get()
}
type UpdateActivityRetentionUseCase struct {
settings audit.SettingsRepository
recorder audit.Recorder
}
func NewUpdateActivityRetentionUseCase(settings audit.SettingsRepository, recorder audit.Recorder) *UpdateActivityRetentionUseCase {
return &UpdateActivityRetentionUseCase{settings, recorder}
}
func (u *UpdateActivityRetentionUseCase) UpdateActivityRetention(ctx context.Context, days int) (audit.Settings, error) {
if err := audit.ValidateRetentionDays(days); err != nil {
return audit.Settings{}, err
}
current, err := u.settings.Get()
if err != nil {
return audit.Settings{}, err
}
if current.RetentionDays == days {
return current, nil
}
if err := u.settings.SaveRetention(days); err != nil {
return audit.Settings{}, err
}
event := audit.NewEvent(audit.ActionRetentionChanged, audit.CategorySystem)
event.Params = map[string]any{audit.ParamFrom: current.RetentionDays, audit.ParamTo: days}
u.recorder.Record(ctx, event)
current.RetentionDays = days
return current, nil
}