// Code generated by ent, DO NOT EDIT. package hook import ( "bj_power_mes/ent" "context" "fmt" ) // The AssociationTraceFunc type is an adapter to allow the use of ordinary // function as AssociationTrace mutator. type AssociationTraceFunc func(context.Context, *ent.AssociationTraceMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f AssociationTraceFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.AssociationTraceMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.AssociationTraceMutation", m) } // The BomItemFunc type is an adapter to allow the use of ordinary // function as BomItem mutator. type BomItemFunc func(context.Context, *ent.BomItemMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f BomItemFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.BomItemMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.BomItemMutation", m) } // The DailyPlanFunc type is an adapter to allow the use of ordinary // function as DailyPlan mutator. type DailyPlanFunc func(context.Context, *ent.DailyPlanMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f DailyPlanFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.DailyPlanMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.DailyPlanMutation", m) } // The EventLogFunc type is an adapter to allow the use of ordinary // function as EventLog mutator. type EventLogFunc func(context.Context, *ent.EventLogMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f EventLogFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.EventLogMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.EventLogMutation", m) } // The InspectionRecordFunc type is an adapter to allow the use of ordinary // function as InspectionRecord mutator. type InspectionRecordFunc func(context.Context, *ent.InspectionRecordMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f InspectionRecordFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.InspectionRecordMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.InspectionRecordMutation", m) } // The MaterialRequestFunc type is an adapter to allow the use of ordinary // function as MaterialRequest mutator. type MaterialRequestFunc func(context.Context, *ent.MaterialRequestMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f MaterialRequestFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.MaterialRequestMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.MaterialRequestMutation", m) } // The PermissionFunc type is an adapter to allow the use of ordinary // function as Permission mutator. type PermissionFunc func(context.Context, *ent.PermissionMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f PermissionFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.PermissionMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.PermissionMutation", m) } // The PlcSendLogFunc type is an adapter to allow the use of ordinary // function as PlcSendLog mutator. type PlcSendLogFunc func(context.Context, *ent.PlcSendLogMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f PlcSendLogFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.PlcSendLogMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.PlcSendLogMutation", m) } // The ProcessFlowFunc type is an adapter to allow the use of ordinary // function as ProcessFlow mutator. type ProcessFlowFunc func(context.Context, *ent.ProcessFlowMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f ProcessFlowFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.ProcessFlowMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.ProcessFlowMutation", m) } // The ProcessStepFunc type is an adapter to allow the use of ordinary // function as ProcessStep mutator. type ProcessStepFunc func(context.Context, *ent.ProcessStepMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f ProcessStepFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.ProcessStepMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.ProcessStepMutation", m) } // The ProductTypeFunc type is an adapter to allow the use of ordinary // function as ProductType mutator. type ProductTypeFunc func(context.Context, *ent.ProductTypeMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f ProductTypeFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.ProductTypeMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.ProductTypeMutation", m) } // The RoleFunc type is an adapter to allow the use of ordinary // function as Role mutator. type RoleFunc func(context.Context, *ent.RoleMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f RoleFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.RoleMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.RoleMutation", m) } // The ScanRecordFunc type is an adapter to allow the use of ordinary // function as ScanRecord mutator. type ScanRecordFunc func(context.Context, *ent.ScanRecordMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f ScanRecordFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.ScanRecordMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.ScanRecordMutation", m) } // The SemiFlowFunc type is an adapter to allow the use of ordinary // function as SemiFlow mutator. type SemiFlowFunc func(context.Context, *ent.SemiFlowMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f SemiFlowFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.SemiFlowMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.SemiFlowMutation", m) } // The StationFunc type is an adapter to allow the use of ordinary // function as Station mutator. type StationFunc func(context.Context, *ent.StationMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f StationFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.StationMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.StationMutation", m) } // The StationProcessFunc type is an adapter to allow the use of ordinary // function as StationProcess mutator. type StationProcessFunc func(context.Context, *ent.StationProcessMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f StationProcessFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.StationProcessMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.StationProcessMutation", m) } // The StepCriterionFunc type is an adapter to allow the use of ordinary // function as StepCriterion mutator. type StepCriterionFunc func(context.Context, *ent.StepCriterionMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f StepCriterionFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.StepCriterionMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.StepCriterionMutation", m) } // The StepDataFunc type is an adapter to allow the use of ordinary // function as StepData mutator. type StepDataFunc func(context.Context, *ent.StepDataMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f StepDataFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.StepDataMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.StepDataMutation", m) } // The TorqueRecordFunc type is an adapter to allow the use of ordinary // function as TorqueRecord mutator. type TorqueRecordFunc func(context.Context, *ent.TorqueRecordMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f TorqueRecordFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.TorqueRecordMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.TorqueRecordMutation", m) } // The UserFunc type is an adapter to allow the use of ordinary // function as User mutator. type UserFunc func(context.Context, *ent.UserMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f UserFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.UserMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.UserMutation", m) } // The UserStationFunc type is an adapter to allow the use of ordinary // function as UserStation mutator. type UserStationFunc func(context.Context, *ent.UserStationMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f UserStationFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.UserStationMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.UserStationMutation", m) } // The WorkOrderFunc type is an adapter to allow the use of ordinary // function as WorkOrder mutator. type WorkOrderFunc func(context.Context, *ent.WorkOrderMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f WorkOrderFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.WorkOrderMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.WorkOrderMutation", m) } // The WorkpieceFunc type is an adapter to allow the use of ordinary // function as Workpiece mutator. type WorkpieceFunc func(context.Context, *ent.WorkpieceMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f WorkpieceFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.WorkpieceMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.WorkpieceMutation", m) } // The WorkpieceProcessFunc type is an adapter to allow the use of ordinary // function as WorkpieceProcess mutator. type WorkpieceProcessFunc func(context.Context, *ent.WorkpieceProcessMutation) (ent.Value, error) // Mutate calls f(ctx, m). func (f WorkpieceProcessFunc) Mutate(ctx context.Context, m ent.Mutation) (ent.Value, error) { if mv, ok := m.(*ent.WorkpieceProcessMutation); ok { return f(ctx, mv) } return nil, fmt.Errorf("unexpected mutation type %T. expect *ent.WorkpieceProcessMutation", m) } // Condition is a hook condition function. type Condition func(context.Context, ent.Mutation) bool // And groups conditions with the AND operator. func And(first, second Condition, rest ...Condition) Condition { return func(ctx context.Context, m ent.Mutation) bool { if !first(ctx, m) || !second(ctx, m) { return false } for _, cond := range rest { if !cond(ctx, m) { return false } } return true } } // Or groups conditions with the OR operator. func Or(first, second Condition, rest ...Condition) Condition { return func(ctx context.Context, m ent.Mutation) bool { if first(ctx, m) || second(ctx, m) { return true } for _, cond := range rest { if cond(ctx, m) { return true } } return false } } // Not negates a given condition. func Not(cond Condition) Condition { return func(ctx context.Context, m ent.Mutation) bool { return !cond(ctx, m) } } // HasOp is a condition testing mutation operation. func HasOp(op ent.Op) Condition { return func(_ context.Context, m ent.Mutation) bool { return m.Op().Is(op) } } // HasAddedFields is a condition validating `.AddedField` on fields. func HasAddedFields(field string, fields ...string) Condition { return func(_ context.Context, m ent.Mutation) bool { if _, exists := m.AddedField(field); !exists { return false } for _, field := range fields { if _, exists := m.AddedField(field); !exists { return false } } return true } } // HasClearedFields is a condition validating `.FieldCleared` on fields. func HasClearedFields(field string, fields ...string) Condition { return func(_ context.Context, m ent.Mutation) bool { if exists := m.FieldCleared(field); !exists { return false } for _, field := range fields { if exists := m.FieldCleared(field); !exists { return false } } return true } } // HasFields is a condition validating `.Field` on fields. func HasFields(field string, fields ...string) Condition { return func(_ context.Context, m ent.Mutation) bool { if _, exists := m.Field(field); !exists { return false } for _, field := range fields { if _, exists := m.Field(field); !exists { return false } } return true } } // If executes the given hook under condition. // // hook.If(ComputeAverage, And(HasFields(...), HasAddedFields(...))) func If(hk ent.Hook, cond Condition) ent.Hook { return func(next ent.Mutator) ent.Mutator { return ent.MutateFunc(func(ctx context.Context, m ent.Mutation) (ent.Value, error) { if cond(ctx, m) { return hk(next).Mutate(ctx, m) } return next.Mutate(ctx, m) }) } } // On executes the given hook only for the given operation. // // hook.On(Log, ent.Delete|ent.Create) func On(hk ent.Hook, op ent.Op) ent.Hook { return If(hk, HasOp(op)) } // Unless skips the given hook only for the given operation. // // hook.Unless(Log, ent.Update|ent.UpdateOne) func Unless(hk ent.Hook, op ent.Op) ent.Hook { return If(hk, Not(HasOp(op))) } // FixedError is a hook returning a fixed error. func FixedError(err error) ent.Hook { return func(ent.Mutator) ent.Mutator { return ent.MutateFunc(func(context.Context, ent.Mutation) (ent.Value, error) { return nil, err }) } } // Reject returns a hook that rejects all operations that match op. // // func (T) Hooks() []ent.Hook { // return []ent.Hook{ // Reject(ent.Delete|ent.Update), // } // } func Reject(op ent.Op) ent.Hook { hk := FixedError(fmt.Errorf("%s operation is not allowed", op)) return On(hk, op) } // Chain acts as a list of hooks and is effectively immutable. // Once created, it will always hold the same set of hooks in the same order. type Chain struct { hooks []ent.Hook } // NewChain creates a new chain of hooks. func NewChain(hooks ...ent.Hook) Chain { return Chain{append([]ent.Hook(nil), hooks...)} } // Hook chains the list of hooks and returns the final hook. func (c Chain) Hook() ent.Hook { return func(mutator ent.Mutator) ent.Mutator { for i := len(c.hooks) - 1; i >= 0; i-- { mutator = c.hooks[i](mutator) } return mutator } } // Append extends a chain, adding the specified hook // as the last ones in the mutation flow. func (c Chain) Append(hooks ...ent.Hook) Chain { newHooks := make([]ent.Hook, 0, len(c.hooks)+len(hooks)) newHooks = append(newHooks, c.hooks...) newHooks = append(newHooks, hooks...) return Chain{newHooks} } // Extend extends a chain, adding the specified chain // as the last ones in the mutation flow. func (c Chain) Extend(chain Chain) Chain { return c.Append(chain.hooks...) }