diff --git a/entgo/mixin/time.go b/entgo/mixin/time.go index 337f29f..2cd5a29 100644 --- a/entgo/mixin/time.go +++ b/entgo/mixin/time.go @@ -1,70 +1,12 @@ package mixin import ( - "time" - "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/mixin" ) -var _ ent.Mixin = (*CreateTime)(nil) - -type CreateTime struct{ mixin.Schema } - -func (CreateTime) Fields() []ent.Field { - return []ent.Field{ - // 创建时间,毫秒 - field.Int64("create_time"). - Comment("创建时间"). - Immutable(). - Optional(). - Nillable(). - DefaultFunc(time.Now().UnixMilli), - } -} - -var _ ent.Mixin = (*UpdateTime)(nil) - -type UpdateTime struct{ mixin.Schema } - -func (UpdateTime) Fields() []ent.Field { - return []ent.Field{ - // 更新时间,毫秒 - // 需要注意的是,如果不是程序自动更新,那么这个字段不会被更新,除非在数据库里面下触发器更新。 - field.Int64("update_time"). - Comment("更新时间"). - Optional(). - Nillable(). - UpdateDefault(time.Now().UnixMilli), - } -} - -var _ ent.Mixin = (*DeleteTime)(nil) - -type DeleteTime struct{ mixin.Schema } - -func (DeleteTime) Fields() []ent.Field { - return []ent.Field{ - // 删除时间,毫秒 - field.Int64("delete_time"). - Comment("删除时间"). - Optional(). - Nillable(), - } -} - -var _ ent.Mixin = (*Time)(nil) - -type Time struct{ mixin.Schema } - -func (Time) Fields() []ent.Field { - var fields []ent.Field - fields = append(fields, CreateTime{}.Fields()...) - fields = append(fields, UpdateTime{}.Fields()...) - fields = append(fields, DeleteTime{}.Fields()...) - return fields -} +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var _ ent.Mixin = (*CreatedAt)(nil) @@ -81,6 +23,8 @@ func (CreatedAt) Fields() []ent.Field { } } +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + var _ ent.Mixin = (*UpdatedAt)(nil) type UpdatedAt struct{ mixin.Schema } @@ -95,6 +39,8 @@ func (UpdatedAt) Fields() []ent.Field { } } +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + var _ ent.Mixin = (*DeletedAt)(nil) type DeletedAt struct{ mixin.Schema } @@ -120,3 +66,66 @@ func (TimeAt) Fields() []ent.Field { fields = append(fields, DeletedAt{}.Fields()...) return fields } + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*CreatedTime)(nil) + +type CreatedTime struct{ mixin.Schema } + +func (CreatedTime) Fields() []ent.Field { + return []ent.Field{ + // 创建时间 + field.Time("create_time"). + Comment("创建时间"). + Immutable(). + Optional(). + Nillable(), + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*UpdatedTime)(nil) + +type UpdatedTime struct{ mixin.Schema } + +func (UpdatedTime) Fields() []ent.Field { + return []ent.Field{ + // 更新时间 + field.Time("update_time"). + Comment("更新时间"). + Optional(). + Nillable(), + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*DeletedTime)(nil) + +type DeletedTime struct{ mixin.Schema } + +func (DeletedTime) Fields() []ent.Field { + return []ent.Field{ + // 删除时间 + field.Time("delete_time"). + Comment("删除时间"). + Optional(). + Nillable(), + } +} + +var _ ent.Mixin = (*Time)(nil) + +type Time struct{ mixin.Schema } + +func (Time) Fields() []ent.Field { + var fields []ent.Field + fields = append(fields, CreatedTime{}.Fields()...) + fields = append(fields, UpdatedTime{}.Fields()...) + fields = append(fields, DeletedTime{}.Fields()...) + return fields +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/entgo/mixin/timestamp.go b/entgo/mixin/timestamp.go new file mode 100644 index 0000000..7261e07 --- /dev/null +++ b/entgo/mixin/timestamp.go @@ -0,0 +1,76 @@ +package mixin + +import ( + "entgo.io/ent" + "entgo.io/ent/schema/field" + "entgo.io/ent/schema/mixin" + "time" +) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*CreateTimestamp)(nil) + +type CreateTimestamp struct{ mixin.Schema } + +func (CreateTimestamp) Fields() []ent.Field { + return []ent.Field{ + // 创建时间,毫秒 + field.Int64("create_time"). + Comment("创建时间"). + Immutable(). + Optional(). + Nillable(). + DefaultFunc(time.Now().UnixMilli), + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*UpdateTimestamp)(nil) + +type UpdateTimestamp struct{ mixin.Schema } + +func (UpdateTimestamp) Fields() []ent.Field { + return []ent.Field{ + // 更新时间,毫秒 + // 需要注意的是,如果不是程序自动更新,那么这个字段不会被更新,除非在数据库里面下触发器更新。 + field.Int64("update_time"). + Comment("更新时间"). + Optional(). + Nillable(). + UpdateDefault(time.Now().UnixMilli), + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*DeleteTimestamp)(nil) + +type DeleteTimestamp struct{ mixin.Schema } + +func (DeleteTimestamp) Fields() []ent.Field { + return []ent.Field{ + // 删除时间,毫秒 + field.Int64("delete_time"). + Comment("删除时间"). + Optional(). + Nillable(), + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +var _ ent.Mixin = (*Timestamp)(nil) + +type Timestamp struct{ mixin.Schema } + +func (Timestamp) Fields() []ent.Field { + var fields []ent.Field + fields = append(fields, CreateTimestamp{}.Fields()...) + fields = append(fields, UpdateTimestamp{}.Fields()...) + fields = append(fields, DeleteTimestamp{}.Fields()...) + return fields +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////