// Copyright (c) 2024 Mattermost Community Enterprise // Registration of Data Retention implementation package data_retention import ( "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/channels/store" "github.com/mattermost/mattermost/server/v8/einterfaces" ) // DataRetentionFactory is a function type that creates a DataRetentionInterface type DataRetentionFactory func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.DataRetentionInterface // NewDataRetentionFactory returns a factory function for creating DataRetention interfaces func NewDataRetentionFactory() DataRetentionFactory { return func(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.DataRetentionInterface { cfg := &DataRetentionConfig{ Store: store, Config: config, Logger: logger, } return NewDataRetentionInterface(cfg) } } // CreateDataRetentionInterface creates a new DataRetention interface directly func CreateDataRetentionInterface(store store.Store, config func() *model.Config, logger mlog.LoggerIFace) einterfaces.DataRetentionInterface { cfg := &DataRetentionConfig{ Store: store, Config: config, Logger: logger, } return NewDataRetentionInterface(cfg) }