task.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package schema
  2. import (
  3. "entgo.io/ent"
  4. "entgo.io/ent/dialect/entsql"
  5. "entgo.io/ent/schema"
  6. "entgo.io/ent/schema/edge"
  7. "entgo.io/ent/schema/field"
  8. "entgo.io/ent/schema/index"
  9. "github.com/suyuan32/simple-admin-common/orm/ent/mixins"
  10. )
  11. // Task holds the schema definition for the Task entity.
  12. type Task struct {
  13. ent.Schema
  14. }
  15. // Fields of the Task.
  16. func (Task) Fields() []ent.Field {
  17. return []ent.Field{
  18. field.String("name").Comment("Task Name | 任务名称"),
  19. field.String("task_group").Comment("Task Group | 任务分组"),
  20. field.String("cron_expression").Comment("Cron expression | 定时任务表达式"),
  21. field.String("pattern").Comment("Cron Pattern | 任务的模式 (用于区分和确定要执行的任务)"),
  22. field.String("payload").Comment("The data used in cron (JSON string) | 任务需要的数据(JSON 字符串)"),
  23. }
  24. }
  25. func (Task) Mixin() []ent.Mixin {
  26. return []ent.Mixin{
  27. mixins.IDMixin{},
  28. mixins.StatusMixin{},
  29. }
  30. }
  31. // Edges of the Task.
  32. func (Task) Edges() []ent.Edge {
  33. return []ent.Edge{
  34. edge.To("task_logs", TaskLog.Type),
  35. }
  36. }
  37. func (Task) Indexes() []ent.Index {
  38. return []ent.Index{
  39. index.Fields("pattern").Unique(),
  40. }
  41. }
  42. func (Task) Annotations() []schema.Annotation {
  43. return []schema.Annotation{
  44. entsql.Annotation{Table: "sys_tasks"},
  45. }
  46. }