First workflow implementation

This commit is contained in:
Achim Rohn
2026-03-21 16:11:24 +00:00
parent a15ca501b8
commit 413dbb72cf
13 changed files with 457 additions and 13 deletions
+13 -2
View File
@@ -41,7 +41,9 @@ type GeneralQueue struct {
// ProcessedAt holds the value of the "processed_at" field.
ProcessedAt time.Time `json:"processed_at,omitempty"`
// UserID holds the value of the "user_id" field.
UserID int `json:"user_id,omitempty"`
UserID int `json:"user_id,omitempty"`
// WorkflowID holds the value of the "workflow_id" field.
WorkflowID string `json:"workflow_id,omitempty"`
selectValues sql.SelectValues
}
@@ -54,7 +56,7 @@ func (*GeneralQueue) scanValues(columns []string) ([]any, error) {
values[i] = new([]byte)
case generalqueue.FieldID, generalqueue.FieldNumberOfTries, generalqueue.FieldMaxRetries, generalqueue.FieldUserID:
values[i] = new(sql.NullInt64)
case generalqueue.FieldName, generalqueue.FieldStatus, generalqueue.FieldErrorMessage:
case generalqueue.FieldName, generalqueue.FieldStatus, generalqueue.FieldErrorMessage, generalqueue.FieldWorkflowID:
values[i] = new(sql.NullString)
case generalqueue.FieldCreatedAt, generalqueue.FieldUpdatedAt, generalqueue.FieldProcessedAt:
values[i] = new(sql.NullTime)
@@ -157,6 +159,12 @@ func (_m *GeneralQueue) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.UserID = int(value.Int64)
}
case generalqueue.FieldWorkflowID:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field workflow_id", values[i])
} else if value.Valid {
_m.WorkflowID = value.String
}
default:
_m.selectValues.Set(columns[i], values[i])
}
@@ -228,6 +236,9 @@ func (_m *GeneralQueue) String() string {
builder.WriteString(", ")
builder.WriteString("user_id=")
builder.WriteString(fmt.Sprintf("%v", _m.UserID))
builder.WriteString(", ")
builder.WriteString("workflow_id=")
builder.WriteString(_m.WorkflowID)
builder.WriteByte(')')
return builder.String()
}
+8
View File
@@ -37,6 +37,8 @@ const (
FieldProcessedAt = "processed_at"
// FieldUserID holds the string denoting the user_id field in the database.
FieldUserID = "user_id"
// FieldWorkflowID holds the string denoting the workflow_id field in the database.
FieldWorkflowID = "workflow_id"
// Table holds the table name of the generalqueue in the database.
Table = "generalQueue"
)
@@ -56,6 +58,7 @@ var Columns = []string{
FieldUpdatedAt,
FieldProcessedAt,
FieldUserID,
FieldWorkflowID,
}
// ValidColumn reports if the column name is valid (part of the table columns).
@@ -152,3 +155,8 @@ func ByProcessedAt(opts ...sql.OrderTermOption) OrderOption {
func ByUserID(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldUserID, opts...).ToFunc()
}
// ByWorkflowID orders the results by the workflow_id field.
func ByWorkflowID(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldWorkflowID, opts...).ToFunc()
}
+80
View File
@@ -94,6 +94,11 @@ func UserID(v int) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldEQ(FieldUserID, v))
}
// WorkflowID applies equality check predicate on the "workflow_id" field. It's identical to WorkflowIDEQ.
func WorkflowID(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldEQ(FieldWorkflowID, v))
}
// NameEQ applies the EQ predicate on the "name" field.
func NameEQ(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldEQ(FieldName, v))
@@ -524,6 +529,81 @@ func UserIDLTE(v int) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldLTE(FieldUserID, v))
}
// WorkflowIDEQ applies the EQ predicate on the "workflow_id" field.
func WorkflowIDEQ(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldEQ(FieldWorkflowID, v))
}
// WorkflowIDNEQ applies the NEQ predicate on the "workflow_id" field.
func WorkflowIDNEQ(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldNEQ(FieldWorkflowID, v))
}
// WorkflowIDIn applies the In predicate on the "workflow_id" field.
func WorkflowIDIn(vs ...string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldIn(FieldWorkflowID, vs...))
}
// WorkflowIDNotIn applies the NotIn predicate on the "workflow_id" field.
func WorkflowIDNotIn(vs ...string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldNotIn(FieldWorkflowID, vs...))
}
// WorkflowIDGT applies the GT predicate on the "workflow_id" field.
func WorkflowIDGT(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldGT(FieldWorkflowID, v))
}
// WorkflowIDGTE applies the GTE predicate on the "workflow_id" field.
func WorkflowIDGTE(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldGTE(FieldWorkflowID, v))
}
// WorkflowIDLT applies the LT predicate on the "workflow_id" field.
func WorkflowIDLT(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldLT(FieldWorkflowID, v))
}
// WorkflowIDLTE applies the LTE predicate on the "workflow_id" field.
func WorkflowIDLTE(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldLTE(FieldWorkflowID, v))
}
// WorkflowIDContains applies the Contains predicate on the "workflow_id" field.
func WorkflowIDContains(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldContains(FieldWorkflowID, v))
}
// WorkflowIDHasPrefix applies the HasPrefix predicate on the "workflow_id" field.
func WorkflowIDHasPrefix(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldHasPrefix(FieldWorkflowID, v))
}
// WorkflowIDHasSuffix applies the HasSuffix predicate on the "workflow_id" field.
func WorkflowIDHasSuffix(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldHasSuffix(FieldWorkflowID, v))
}
// WorkflowIDIsNil applies the IsNil predicate on the "workflow_id" field.
func WorkflowIDIsNil() predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldIsNull(FieldWorkflowID))
}
// WorkflowIDNotNil applies the NotNil predicate on the "workflow_id" field.
func WorkflowIDNotNil() predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldNotNull(FieldWorkflowID))
}
// WorkflowIDEqualFold applies the EqualFold predicate on the "workflow_id" field.
func WorkflowIDEqualFold(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldEqualFold(FieldWorkflowID, v))
}
// WorkflowIDContainsFold applies the ContainsFold predicate on the "workflow_id" field.
func WorkflowIDContainsFold(v string) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.FieldContainsFold(FieldWorkflowID, v))
}
// And groups predicates with the AND operator between them.
func And(predicates ...predicate.GeneralQueue) predicate.GeneralQueue {
return predicate.GeneralQueue(sql.AndPredicates(predicates...))
+18
View File
@@ -124,6 +124,20 @@ func (_c *GeneralQueueCreate) SetUserID(v int) *GeneralQueueCreate {
return _c
}
// SetWorkflowID sets the "workflow_id" field.
func (_c *GeneralQueueCreate) SetWorkflowID(v string) *GeneralQueueCreate {
_c.mutation.SetWorkflowID(v)
return _c
}
// SetNillableWorkflowID sets the "workflow_id" field if the given value is not nil.
func (_c *GeneralQueueCreate) SetNillableWorkflowID(v *string) *GeneralQueueCreate {
if v != nil {
_c.SetWorkflowID(*v)
}
return _c
}
// Mutation returns the GeneralQueueMutation object of the builder.
func (_c *GeneralQueueCreate) Mutation() *GeneralQueueMutation {
return _c.mutation
@@ -274,6 +288,10 @@ func (_c *GeneralQueueCreate) createSpec() (*GeneralQueue, *sqlgraph.CreateSpec)
_spec.SetField(generalqueue.FieldUserID, field.TypeInt, value)
_node.UserID = value
}
if value, ok := _c.mutation.WorkflowID(); ok {
_spec.SetField(generalqueue.FieldWorkflowID, field.TypeString, value)
_node.WorkflowID = value
}
return _node, _spec
}
+52
View File
@@ -217,6 +217,26 @@ func (_u *GeneralQueueUpdate) AddUserID(v int) *GeneralQueueUpdate {
return _u
}
// SetWorkflowID sets the "workflow_id" field.
func (_u *GeneralQueueUpdate) SetWorkflowID(v string) *GeneralQueueUpdate {
_u.mutation.SetWorkflowID(v)
return _u
}
// SetNillableWorkflowID sets the "workflow_id" field if the given value is not nil.
func (_u *GeneralQueueUpdate) SetNillableWorkflowID(v *string) *GeneralQueueUpdate {
if v != nil {
_u.SetWorkflowID(*v)
}
return _u
}
// ClearWorkflowID clears the value of the "workflow_id" field.
func (_u *GeneralQueueUpdate) ClearWorkflowID() *GeneralQueueUpdate {
_u.mutation.ClearWorkflowID()
return _u
}
// Mutation returns the GeneralQueueMutation object of the builder.
func (_u *GeneralQueueUpdate) Mutation() *GeneralQueueMutation {
return _u.mutation
@@ -328,6 +348,12 @@ func (_u *GeneralQueueUpdate) sqlSave(ctx context.Context) (_node int, err error
if value, ok := _u.mutation.AddedUserID(); ok {
_spec.AddField(generalqueue.FieldUserID, field.TypeInt, value)
}
if value, ok := _u.mutation.WorkflowID(); ok {
_spec.SetField(generalqueue.FieldWorkflowID, field.TypeString, value)
}
if _u.mutation.WorkflowIDCleared() {
_spec.ClearField(generalqueue.FieldWorkflowID, field.TypeString)
}
if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{generalqueue.Label}
@@ -537,6 +563,26 @@ func (_u *GeneralQueueUpdateOne) AddUserID(v int) *GeneralQueueUpdateOne {
return _u
}
// SetWorkflowID sets the "workflow_id" field.
func (_u *GeneralQueueUpdateOne) SetWorkflowID(v string) *GeneralQueueUpdateOne {
_u.mutation.SetWorkflowID(v)
return _u
}
// SetNillableWorkflowID sets the "workflow_id" field if the given value is not nil.
func (_u *GeneralQueueUpdateOne) SetNillableWorkflowID(v *string) *GeneralQueueUpdateOne {
if v != nil {
_u.SetWorkflowID(*v)
}
return _u
}
// ClearWorkflowID clears the value of the "workflow_id" field.
func (_u *GeneralQueueUpdateOne) ClearWorkflowID() *GeneralQueueUpdateOne {
_u.mutation.ClearWorkflowID()
return _u
}
// Mutation returns the GeneralQueueMutation object of the builder.
func (_u *GeneralQueueUpdateOne) Mutation() *GeneralQueueMutation {
return _u.mutation
@@ -678,6 +724,12 @@ func (_u *GeneralQueueUpdateOne) sqlSave(ctx context.Context) (_node *GeneralQue
if value, ok := _u.mutation.AddedUserID(); ok {
_spec.AddField(generalqueue.FieldUserID, field.TypeInt, value)
}
if value, ok := _u.mutation.WorkflowID(); ok {
_spec.SetField(generalqueue.FieldWorkflowID, field.TypeString, value)
}
if _u.mutation.WorkflowIDCleared() {
_spec.ClearField(generalqueue.FieldWorkflowID, field.TypeString)
}
_node = &GeneralQueue{config: _u.config}
_spec.Assign = _node.assignValues
_spec.ScanValues = _node.scanValues
+1
View File
@@ -38,6 +38,7 @@ var (
{Name: "updated_at", Type: field.TypeTime},
{Name: "processed_at", Type: field.TypeTime, Nullable: true},
{Name: "user_id", Type: field.TypeInt},
{Name: "workflow_id", Type: field.TypeString, Nullable: true},
}
// GeneralQueueTable holds the schema information for the "generalQueue" table.
GeneralQueueTable = &schema.Table{
+74 -1
View File
@@ -576,6 +576,7 @@ type GeneralQueueMutation struct {
processed_at *time.Time
user_id *int
adduser_id *int
workflow_id *string
clearedFields map[string]struct{}
done bool
oldValue func(context.Context) (*GeneralQueue, error)
@@ -1224,6 +1225,55 @@ func (m *GeneralQueueMutation) ResetUserID() {
m.adduser_id = nil
}
// SetWorkflowID sets the "workflow_id" field.
func (m *GeneralQueueMutation) SetWorkflowID(s string) {
m.workflow_id = &s
}
// WorkflowID returns the value of the "workflow_id" field in the mutation.
func (m *GeneralQueueMutation) WorkflowID() (r string, exists bool) {
v := m.workflow_id
if v == nil {
return
}
return *v, true
}
// OldWorkflowID returns the old "workflow_id" field's value of the GeneralQueue entity.
// If the GeneralQueue object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *GeneralQueueMutation) OldWorkflowID(ctx context.Context) (v string, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldWorkflowID is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, errors.New("OldWorkflowID requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldWorkflowID: %w", err)
}
return oldValue.WorkflowID, nil
}
// ClearWorkflowID clears the value of the "workflow_id" field.
func (m *GeneralQueueMutation) ClearWorkflowID() {
m.workflow_id = nil
m.clearedFields[generalqueue.FieldWorkflowID] = struct{}{}
}
// WorkflowIDCleared returns if the "workflow_id" field was cleared in this mutation.
func (m *GeneralQueueMutation) WorkflowIDCleared() bool {
_, ok := m.clearedFields[generalqueue.FieldWorkflowID]
return ok
}
// ResetWorkflowID resets all changes to the "workflow_id" field.
func (m *GeneralQueueMutation) ResetWorkflowID() {
m.workflow_id = nil
delete(m.clearedFields, generalqueue.FieldWorkflowID)
}
// Where appends a list predicates to the GeneralQueueMutation builder.
func (m *GeneralQueueMutation) Where(ps ...predicate.GeneralQueue) {
m.predicates = append(m.predicates, ps...)
@@ -1258,7 +1308,7 @@ func (m *GeneralQueueMutation) Type() string {
// order to get all numeric fields that were incremented/decremented, call
// AddedFields().
func (m *GeneralQueueMutation) Fields() []string {
fields := make([]string, 0, 12)
fields := make([]string, 0, 13)
if m.name != nil {
fields = append(fields, generalqueue.FieldName)
}
@@ -1295,6 +1345,9 @@ func (m *GeneralQueueMutation) Fields() []string {
if m.user_id != nil {
fields = append(fields, generalqueue.FieldUserID)
}
if m.workflow_id != nil {
fields = append(fields, generalqueue.FieldWorkflowID)
}
return fields
}
@@ -1327,6 +1380,8 @@ func (m *GeneralQueueMutation) Field(name string) (ent.Value, bool) {
return m.ProcessedAt()
case generalqueue.FieldUserID:
return m.UserID()
case generalqueue.FieldWorkflowID:
return m.WorkflowID()
}
return nil, false
}
@@ -1360,6 +1415,8 @@ func (m *GeneralQueueMutation) OldField(ctx context.Context, name string) (ent.V
return m.OldProcessedAt(ctx)
case generalqueue.FieldUserID:
return m.OldUserID(ctx)
case generalqueue.FieldWorkflowID:
return m.OldWorkflowID(ctx)
}
return nil, fmt.Errorf("unknown GeneralQueue field %s", name)
}
@@ -1453,6 +1510,13 @@ func (m *GeneralQueueMutation) SetField(name string, value ent.Value) error {
}
m.SetUserID(v)
return nil
case generalqueue.FieldWorkflowID:
v, ok := value.(string)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetWorkflowID(v)
return nil
}
return fmt.Errorf("unknown GeneralQueue field %s", name)
}
@@ -1534,6 +1598,9 @@ func (m *GeneralQueueMutation) ClearedFields() []string {
if m.FieldCleared(generalqueue.FieldProcessedAt) {
fields = append(fields, generalqueue.FieldProcessedAt)
}
if m.FieldCleared(generalqueue.FieldWorkflowID) {
fields = append(fields, generalqueue.FieldWorkflowID)
}
return fields
}
@@ -1560,6 +1627,9 @@ func (m *GeneralQueueMutation) ClearField(name string) error {
case generalqueue.FieldProcessedAt:
m.ClearProcessedAt()
return nil
case generalqueue.FieldWorkflowID:
m.ClearWorkflowID()
return nil
}
return fmt.Errorf("unknown GeneralQueue nullable field %s", name)
}
@@ -1604,6 +1674,9 @@ func (m *GeneralQueueMutation) ResetField(name string) error {
case generalqueue.FieldUserID:
m.ResetUserID()
return nil
case generalqueue.FieldWorkflowID:
m.ResetWorkflowID()
return nil
}
return fmt.Errorf("unknown GeneralQueue field %s", name)
}
+1
View File
@@ -25,6 +25,7 @@ func (GeneralQueue) Fields() []ent.Field {
field.Time("updated_at"),
field.Time("processed_at").Optional(),
field.Int("user_id"),
field.String("workflow_id").Optional(),
}
}