feat: entgo mixin.
This commit is contained in:
@@ -1,70 +1,12 @@
|
|||||||
package mixin
|
package mixin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
|
||||||
|
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
"entgo.io/ent/schema/mixin"
|
"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)
|
var _ ent.Mixin = (*CreatedAt)(nil)
|
||||||
|
|
||||||
@@ -81,6 +23,8 @@ func (CreatedAt) Fields() []ent.Field {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var _ ent.Mixin = (*UpdatedAt)(nil)
|
var _ ent.Mixin = (*UpdatedAt)(nil)
|
||||||
|
|
||||||
type UpdatedAt struct{ mixin.Schema }
|
type UpdatedAt struct{ mixin.Schema }
|
||||||
@@ -95,6 +39,8 @@ func (UpdatedAt) Fields() []ent.Field {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var _ ent.Mixin = (*DeletedAt)(nil)
|
var _ ent.Mixin = (*DeletedAt)(nil)
|
||||||
|
|
||||||
type DeletedAt struct{ mixin.Schema }
|
type DeletedAt struct{ mixin.Schema }
|
||||||
@@ -120,3 +66,66 @@ func (TimeAt) Fields() []ent.Field {
|
|||||||
fields = append(fields, DeletedAt{}.Fields()...)
|
fields = append(fields, DeletedAt{}.Fields()...)
|
||||||
return 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
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
76
entgo/mixin/timestamp.go
Normal file
76
entgo/mixin/timestamp.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
Reference in New Issue
Block a user