package interfaces import ( "context" "github.com/yuninks/loggerx" ) type Options struct { Logger loggerx.LoggerInterface EmialConfig } func DefaultOptions() Options { ctx := context.Background() return Options{ Logger: loggerx.NewLogger(ctx), } } type Option func(*Options) // 设置日志 func SetLogger(logger loggerx.LoggerInterface) Option { return func(o *Options) { o.Logger = logger } } func SetEmialConfig(emialConfig EmialConfig) Option { return func(o *Options) { o.EmialConfig = emialConfig } } func SetSmtp(smtp *EmailConfigDataSmtp) Option { return func(o *Options) { o.Smtp = smtp } } func SetAws(aws *EmailConfigDataAws) Option { return func(o *Options) { o.Aws = aws } } func SetAliyun(aliyun *EmialConfigDataAliyun) Option { return func(o *Options) { o.Aliyun = aliyun } } func SetMailgun(mailgun *EmialConfigDataMailgun) Option { return func(o *Options) { o.Mailgun = mailgun } }