34 lines
738 B
Go
34 lines
738 B
Go
package mixins
|
|
|
|
import (
|
|
"context"
|
|
|
|
"entgo.io/ent"
|
|
"entgo.io/ent/schema/field"
|
|
"entgo.io/ent/schema/mixin"
|
|
//"mingyang-admin-app/ent/intercept"
|
|
)
|
|
|
|
// SoftDeleteMixin implements the soft delete pattern for schemas.
|
|
type SoftDeleteMixin struct {
|
|
mixin.Schema
|
|
}
|
|
|
|
// Fields of the SoftDeleteMixin.
|
|
func (SoftDeleteMixin) Fields() []ent.Field {
|
|
return []ent.Field{
|
|
field.Time("deleted_at").
|
|
Optional().
|
|
Comment("Delete Time | 删除日期"),
|
|
}
|
|
}
|
|
|
|
type softDeleteKey struct{}
|
|
|
|
// SkipSoftDelete returns a new context that skips the soft-delete interceptor/mutators.
|
|
func SkipSoftDelete(parent context.Context) context.Context {
|
|
return context.WithValue(parent, softDeleteKey{}, true)
|
|
}
|
|
|
|
// Interceptors of the SoftDeleteMixin.
|