task_create.go 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "context"
  5. "errors"
  6. "fmt"
  7. "time"
  8. "entgo.io/ent/dialect/sql/sqlgraph"
  9. "entgo.io/ent/schema/field"
  10. "github.com/suyuan32/simple-admin-job/ent/task"
  11. "github.com/suyuan32/simple-admin-job/ent/tasklog"
  12. )
  13. // TaskCreate is the builder for creating a Task entity.
  14. type TaskCreate struct {
  15. config
  16. mutation *TaskMutation
  17. hooks []Hook
  18. }
  19. // SetCreatedAt sets the "created_at" field.
  20. func (tc *TaskCreate) SetCreatedAt(t time.Time) *TaskCreate {
  21. tc.mutation.SetCreatedAt(t)
  22. return tc
  23. }
  24. // SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
  25. func (tc *TaskCreate) SetNillableCreatedAt(t *time.Time) *TaskCreate {
  26. if t != nil {
  27. tc.SetCreatedAt(*t)
  28. }
  29. return tc
  30. }
  31. // SetUpdatedAt sets the "updated_at" field.
  32. func (tc *TaskCreate) SetUpdatedAt(t time.Time) *TaskCreate {
  33. tc.mutation.SetUpdatedAt(t)
  34. return tc
  35. }
  36. // SetNillableUpdatedAt sets the "updated_at" field if the given value is not nil.
  37. func (tc *TaskCreate) SetNillableUpdatedAt(t *time.Time) *TaskCreate {
  38. if t != nil {
  39. tc.SetUpdatedAt(*t)
  40. }
  41. return tc
  42. }
  43. // SetStatus sets the "status" field.
  44. func (tc *TaskCreate) SetStatus(u uint8) *TaskCreate {
  45. tc.mutation.SetStatus(u)
  46. return tc
  47. }
  48. // SetNillableStatus sets the "status" field if the given value is not nil.
  49. func (tc *TaskCreate) SetNillableStatus(u *uint8) *TaskCreate {
  50. if u != nil {
  51. tc.SetStatus(*u)
  52. }
  53. return tc
  54. }
  55. // SetName sets the "name" field.
  56. func (tc *TaskCreate) SetName(s string) *TaskCreate {
  57. tc.mutation.SetName(s)
  58. return tc
  59. }
  60. // SetTaskGroup sets the "task_group" field.
  61. func (tc *TaskCreate) SetTaskGroup(s string) *TaskCreate {
  62. tc.mutation.SetTaskGroup(s)
  63. return tc
  64. }
  65. // SetCronExpression sets the "cron_expression" field.
  66. func (tc *TaskCreate) SetCronExpression(s string) *TaskCreate {
  67. tc.mutation.SetCronExpression(s)
  68. return tc
  69. }
  70. // SetPattern sets the "pattern" field.
  71. func (tc *TaskCreate) SetPattern(s string) *TaskCreate {
  72. tc.mutation.SetPattern(s)
  73. return tc
  74. }
  75. // SetPayload sets the "payload" field.
  76. func (tc *TaskCreate) SetPayload(s string) *TaskCreate {
  77. tc.mutation.SetPayload(s)
  78. return tc
  79. }
  80. // SetID sets the "id" field.
  81. func (tc *TaskCreate) SetID(u uint64) *TaskCreate {
  82. tc.mutation.SetID(u)
  83. return tc
  84. }
  85. // AddTaskLogIDs adds the "task_logs" edge to the TaskLog entity by IDs.
  86. func (tc *TaskCreate) AddTaskLogIDs(ids ...uint64) *TaskCreate {
  87. tc.mutation.AddTaskLogIDs(ids...)
  88. return tc
  89. }
  90. // AddTaskLogs adds the "task_logs" edges to the TaskLog entity.
  91. func (tc *TaskCreate) AddTaskLogs(t ...*TaskLog) *TaskCreate {
  92. ids := make([]uint64, len(t))
  93. for i := range t {
  94. ids[i] = t[i].ID
  95. }
  96. return tc.AddTaskLogIDs(ids...)
  97. }
  98. // Mutation returns the TaskMutation object of the builder.
  99. func (tc *TaskCreate) Mutation() *TaskMutation {
  100. return tc.mutation
  101. }
  102. // Save creates the Task in the database.
  103. func (tc *TaskCreate) Save(ctx context.Context) (*Task, error) {
  104. tc.defaults()
  105. return withHooks(ctx, tc.sqlSave, tc.mutation, tc.hooks)
  106. }
  107. // SaveX calls Save and panics if Save returns an error.
  108. func (tc *TaskCreate) SaveX(ctx context.Context) *Task {
  109. v, err := tc.Save(ctx)
  110. if err != nil {
  111. panic(err)
  112. }
  113. return v
  114. }
  115. // Exec executes the query.
  116. func (tc *TaskCreate) Exec(ctx context.Context) error {
  117. _, err := tc.Save(ctx)
  118. return err
  119. }
  120. // ExecX is like Exec, but panics if an error occurs.
  121. func (tc *TaskCreate) ExecX(ctx context.Context) {
  122. if err := tc.Exec(ctx); err != nil {
  123. panic(err)
  124. }
  125. }
  126. // defaults sets the default values of the builder before save.
  127. func (tc *TaskCreate) defaults() {
  128. if _, ok := tc.mutation.CreatedAt(); !ok {
  129. v := task.DefaultCreatedAt()
  130. tc.mutation.SetCreatedAt(v)
  131. }
  132. if _, ok := tc.mutation.UpdatedAt(); !ok {
  133. v := task.DefaultUpdatedAt()
  134. tc.mutation.SetUpdatedAt(v)
  135. }
  136. if _, ok := tc.mutation.Status(); !ok {
  137. v := task.DefaultStatus
  138. tc.mutation.SetStatus(v)
  139. }
  140. }
  141. // check runs all checks and user-defined validators on the builder.
  142. func (tc *TaskCreate) check() error {
  143. if _, ok := tc.mutation.CreatedAt(); !ok {
  144. return &ValidationError{Name: "created_at", err: errors.New(`ent: missing required field "Task.created_at"`)}
  145. }
  146. if _, ok := tc.mutation.UpdatedAt(); !ok {
  147. return &ValidationError{Name: "updated_at", err: errors.New(`ent: missing required field "Task.updated_at"`)}
  148. }
  149. if _, ok := tc.mutation.Name(); !ok {
  150. return &ValidationError{Name: "name", err: errors.New(`ent: missing required field "Task.name"`)}
  151. }
  152. if _, ok := tc.mutation.TaskGroup(); !ok {
  153. return &ValidationError{Name: "task_group", err: errors.New(`ent: missing required field "Task.task_group"`)}
  154. }
  155. if _, ok := tc.mutation.CronExpression(); !ok {
  156. return &ValidationError{Name: "cron_expression", err: errors.New(`ent: missing required field "Task.cron_expression"`)}
  157. }
  158. if _, ok := tc.mutation.Pattern(); !ok {
  159. return &ValidationError{Name: "pattern", err: errors.New(`ent: missing required field "Task.pattern"`)}
  160. }
  161. if _, ok := tc.mutation.Payload(); !ok {
  162. return &ValidationError{Name: "payload", err: errors.New(`ent: missing required field "Task.payload"`)}
  163. }
  164. return nil
  165. }
  166. func (tc *TaskCreate) sqlSave(ctx context.Context) (*Task, error) {
  167. if err := tc.check(); err != nil {
  168. return nil, err
  169. }
  170. _node, _spec := tc.createSpec()
  171. if err := sqlgraph.CreateNode(ctx, tc.driver, _spec); err != nil {
  172. if sqlgraph.IsConstraintError(err) {
  173. err = &ConstraintError{msg: err.Error(), wrap: err}
  174. }
  175. return nil, err
  176. }
  177. if _spec.ID.Value != _node.ID {
  178. id := _spec.ID.Value.(int64)
  179. _node.ID = uint64(id)
  180. }
  181. tc.mutation.id = &_node.ID
  182. tc.mutation.done = true
  183. return _node, nil
  184. }
  185. func (tc *TaskCreate) createSpec() (*Task, *sqlgraph.CreateSpec) {
  186. var (
  187. _node = &Task{config: tc.config}
  188. _spec = sqlgraph.NewCreateSpec(task.Table, sqlgraph.NewFieldSpec(task.FieldID, field.TypeUint64))
  189. )
  190. if id, ok := tc.mutation.ID(); ok {
  191. _node.ID = id
  192. _spec.ID.Value = id
  193. }
  194. if value, ok := tc.mutation.CreatedAt(); ok {
  195. _spec.SetField(task.FieldCreatedAt, field.TypeTime, value)
  196. _node.CreatedAt = value
  197. }
  198. if value, ok := tc.mutation.UpdatedAt(); ok {
  199. _spec.SetField(task.FieldUpdatedAt, field.TypeTime, value)
  200. _node.UpdatedAt = value
  201. }
  202. if value, ok := tc.mutation.Status(); ok {
  203. _spec.SetField(task.FieldStatus, field.TypeUint8, value)
  204. _node.Status = value
  205. }
  206. if value, ok := tc.mutation.Name(); ok {
  207. _spec.SetField(task.FieldName, field.TypeString, value)
  208. _node.Name = value
  209. }
  210. if value, ok := tc.mutation.TaskGroup(); ok {
  211. _spec.SetField(task.FieldTaskGroup, field.TypeString, value)
  212. _node.TaskGroup = value
  213. }
  214. if value, ok := tc.mutation.CronExpression(); ok {
  215. _spec.SetField(task.FieldCronExpression, field.TypeString, value)
  216. _node.CronExpression = value
  217. }
  218. if value, ok := tc.mutation.Pattern(); ok {
  219. _spec.SetField(task.FieldPattern, field.TypeString, value)
  220. _node.Pattern = value
  221. }
  222. if value, ok := tc.mutation.Payload(); ok {
  223. _spec.SetField(task.FieldPayload, field.TypeString, value)
  224. _node.Payload = value
  225. }
  226. if nodes := tc.mutation.TaskLogsIDs(); len(nodes) > 0 {
  227. edge := &sqlgraph.EdgeSpec{
  228. Rel: sqlgraph.O2M,
  229. Inverse: false,
  230. Table: task.TaskLogsTable,
  231. Columns: []string{task.TaskLogsColumn},
  232. Bidi: false,
  233. Target: &sqlgraph.EdgeTarget{
  234. IDSpec: sqlgraph.NewFieldSpec(tasklog.FieldID, field.TypeUint64),
  235. },
  236. }
  237. for _, k := range nodes {
  238. edge.Target.Nodes = append(edge.Target.Nodes, k)
  239. }
  240. _spec.Edges = append(_spec.Edges, edge)
  241. }
  242. return _node, _spec
  243. }
  244. // TaskCreateBulk is the builder for creating many Task entities in bulk.
  245. type TaskCreateBulk struct {
  246. config
  247. err error
  248. builders []*TaskCreate
  249. }
  250. // Save creates the Task entities in the database.
  251. func (tcb *TaskCreateBulk) Save(ctx context.Context) ([]*Task, error) {
  252. if tcb.err != nil {
  253. return nil, tcb.err
  254. }
  255. specs := make([]*sqlgraph.CreateSpec, len(tcb.builders))
  256. nodes := make([]*Task, len(tcb.builders))
  257. mutators := make([]Mutator, len(tcb.builders))
  258. for i := range tcb.builders {
  259. func(i int, root context.Context) {
  260. builder := tcb.builders[i]
  261. builder.defaults()
  262. var mut Mutator = MutateFunc(func(ctx context.Context, m Mutation) (Value, error) {
  263. mutation, ok := m.(*TaskMutation)
  264. if !ok {
  265. return nil, fmt.Errorf("unexpected mutation type %T", m)
  266. }
  267. if err := builder.check(); err != nil {
  268. return nil, err
  269. }
  270. builder.mutation = mutation
  271. var err error
  272. nodes[i], specs[i] = builder.createSpec()
  273. if i < len(mutators)-1 {
  274. _, err = mutators[i+1].Mutate(root, tcb.builders[i+1].mutation)
  275. } else {
  276. spec := &sqlgraph.BatchCreateSpec{Nodes: specs}
  277. // Invoke the actual operation on the latest mutation in the chain.
  278. if err = sqlgraph.BatchCreate(ctx, tcb.driver, spec); err != nil {
  279. if sqlgraph.IsConstraintError(err) {
  280. err = &ConstraintError{msg: err.Error(), wrap: err}
  281. }
  282. }
  283. }
  284. if err != nil {
  285. return nil, err
  286. }
  287. mutation.id = &nodes[i].ID
  288. if specs[i].ID.Value != nil && nodes[i].ID == 0 {
  289. id := specs[i].ID.Value.(int64)
  290. nodes[i].ID = uint64(id)
  291. }
  292. mutation.done = true
  293. return nodes[i], nil
  294. })
  295. for i := len(builder.hooks) - 1; i >= 0; i-- {
  296. mut = builder.hooks[i](mut)
  297. }
  298. mutators[i] = mut
  299. }(i, ctx)
  300. }
  301. if len(mutators) > 0 {
  302. if _, err := mutators[0].Mutate(ctx, tcb.builders[0].mutation); err != nil {
  303. return nil, err
  304. }
  305. }
  306. return nodes, nil
  307. }
  308. // SaveX is like Save, but panics if an error occurs.
  309. func (tcb *TaskCreateBulk) SaveX(ctx context.Context) []*Task {
  310. v, err := tcb.Save(ctx)
  311. if err != nil {
  312. panic(err)
  313. }
  314. return v
  315. }
  316. // Exec executes the query.
  317. func (tcb *TaskCreateBulk) Exec(ctx context.Context) error {
  318. _, err := tcb.Save(ctx)
  319. return err
  320. }
  321. // ExecX is like Exec, but panics if an error occurs.
  322. func (tcb *TaskCreateBulk) ExecX(ctx context.Context) {
  323. if err := tcb.Exec(ctx); err != nil {
  324. panic(err)
  325. }
  326. }