35 lines
672 B
Go
35 lines
672 B
Go
package options
|
|
|
|
type DeleteAudit struct {
|
|
Id string
|
|
Before any
|
|
Context any
|
|
}
|
|
|
|
type OnDeleteAudit func(audit *DeleteAudit)
|
|
|
|
type DeleteOneOptions struct {
|
|
OnDeleteAudit *OnDeleteAudit
|
|
}
|
|
|
|
type DeleteOneOptionsBuilder struct {
|
|
Opts []func(*DeleteOneOptions) error
|
|
}
|
|
|
|
func DeleteOne() *DeleteOneOptionsBuilder{
|
|
return &DeleteOneOptionsBuilder{}
|
|
}
|
|
|
|
func (dao *DeleteOneOptionsBuilder) List() []func(*DeleteOneOptions) error {
|
|
return dao.Opts
|
|
}
|
|
|
|
func (dao *DeleteOneOptionsBuilder) WithOnDeleteAudit(oa *OnDeleteAudit) *DeleteOneOptionsBuilder {
|
|
dao.Opts = append(dao.Opts, func(opts *DeleteOneOptions) error {
|
|
opts.OnDeleteAudit = oa
|
|
|
|
return nil
|
|
})
|
|
|
|
return dao
|
|
} |