package mixins import ( "entgo.io/ent" "entgo.io/ent/dialect" "entgo.io/ent/schema/field" "entgo.io/ent/schema/mixin" "time" ) // TimeMixin implements the ent.Mixin for sharing // all time fields with package schemas. type TimeMixin struct { mixin.Schema } func (TimeMixin) Fields() []ent.Field { return append( CreateTimeMixin{}.Fields(), UpdateTimeMixin{}.Fields()..., ) } // CreateTimeMixin implements the ent.Mixin for sharing // time fields with package schemas. type CreateTimeMixin struct { mixin.Schema } // Fields of the create-time mixin. func (CreateTimeMixin) Fields() []ent.Field { return []ent.Field{ field.Time("created_at"). Default(time.Now). Immutable(). SchemaType(map[string]string{ dialect.MySQL: "datetime", }). Comment("Create Time | 创建时间"), } } // UpdateTimeMixin implements the ent.Mixin for sharing // time fields with package schemas. type UpdateTimeMixin struct { mixin.Schema } // Fields of the update-time mixin. func (UpdateTimeMixin) Fields() []ent.Field { return []ent.Field{ field.Time("updated_at"). Default(time.Now). UpdateDefault(time.Now). SchemaType(map[string]string{ dialect.MySQL: "datetime", }). Comment("Update Time | 更新时间"), } }