feat: id字段mixin添加immutable;timeMixin分割为两个

main v1.2.3
NoahLan 10 months ago
parent ed7599302c
commit 29c064f702

@ -26,6 +26,7 @@ func (d DistributedIDMixin) Fields() []ent.Field {
field.Int64("id").
Annotations(entsql.Annotation{Incremental: tea.Bool(false)}).
DefaultFunc(d.idFn).
Immutable().
Comment("Primary Key | 主键"),
}
}

@ -1,23 +1,23 @@
package mixins
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/mixin"
"entgo.io/ent"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/mixin"
)
// SortMixin implements the ent.Mixin for sharing
// sort fields with package schemas.
type SortMixin struct {
// We embed the `mixin.Schema` to avoid
// implementing the rest of the methods.
mixin.Schema
// We embed the `mixin.Schema` to avoid
// implementing the rest of the methods.
mixin.Schema
}
func (SortMixin) Fields() []ent.Field {
return []ent.Field{
field.Uint32("sort").
Default(1).
Comment("Sort number | 排序号"),
}
return []ent.Field{
field.Uint32("sort").
Default(1).
Comment("Sort number | 排序号"),
}
}

@ -1,34 +1,60 @@
package mixins
import (
"entgo.io/ent"
"entgo.io/ent/dialect"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/mixin"
"time"
"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
// time fields with package schemas.
// all time fields with package schemas.
type TimeMixin struct {
mixin.Schema
mixin.Schema
}
func (TimeMixin) Fields() []ent.Field {
return []ent.Field{
field.Time("created_at").
Immutable().
Default(time.Now).
SchemaType(map[string]string{
dialect.MySQL: "datetime",
}).
Comment("创建时间"),
field.Time("updated_at").
Default(time.Now).
UpdateDefault(time.Now).
SchemaType(map[string]string{
dialect.MySQL: "datetime",
}).
Comment("更新时间"),
}
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 | 更新时间"),
}
}

Loading…
Cancel
Save