Files
MonkeyCode/backend/db/record_update.go
2025-06-25 15:56:22 +08:00

1015 lines
29 KiB
Go

// Code generated by ent, DO NOT EDIT.
package db
import (
"context"
"errors"
"fmt"
"time"
"entgo.io/ent/dialect/sql"
"entgo.io/ent/dialect/sql/sqlgraph"
"entgo.io/ent/schema/field"
"github.com/chaitin/MonkeyCode/backend/consts"
"github.com/chaitin/MonkeyCode/backend/db/model"
"github.com/chaitin/MonkeyCode/backend/db/predicate"
"github.com/chaitin/MonkeyCode/backend/db/record"
"github.com/chaitin/MonkeyCode/backend/db/user"
"github.com/google/uuid"
)
// RecordUpdate is the builder for updating Record entities.
type RecordUpdate struct {
config
hooks []Hook
mutation *RecordMutation
modifiers []func(*sql.UpdateBuilder)
}
// Where appends a list predicates to the RecordUpdate builder.
func (ru *RecordUpdate) Where(ps ...predicate.Record) *RecordUpdate {
ru.mutation.Where(ps...)
return ru
}
// SetUserID sets the "user_id" field.
func (ru *RecordUpdate) SetUserID(u uuid.UUID) *RecordUpdate {
ru.mutation.SetUserID(u)
return ru
}
// SetNillableUserID sets the "user_id" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableUserID(u *uuid.UUID) *RecordUpdate {
if u != nil {
ru.SetUserID(*u)
}
return ru
}
// ClearUserID clears the value of the "user_id" field.
func (ru *RecordUpdate) ClearUserID() *RecordUpdate {
ru.mutation.ClearUserID()
return ru
}
// SetModelID sets the "model_id" field.
func (ru *RecordUpdate) SetModelID(u uuid.UUID) *RecordUpdate {
ru.mutation.SetModelID(u)
return ru
}
// SetNillableModelID sets the "model_id" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableModelID(u *uuid.UUID) *RecordUpdate {
if u != nil {
ru.SetModelID(*u)
}
return ru
}
// ClearModelID clears the value of the "model_id" field.
func (ru *RecordUpdate) ClearModelID() *RecordUpdate {
ru.mutation.ClearModelID()
return ru
}
// SetTaskID sets the "task_id" field.
func (ru *RecordUpdate) SetTaskID(s string) *RecordUpdate {
ru.mutation.SetTaskID(s)
return ru
}
// SetNillableTaskID sets the "task_id" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableTaskID(s *string) *RecordUpdate {
if s != nil {
ru.SetTaskID(*s)
}
return ru
}
// SetModelType sets the "model_type" field.
func (ru *RecordUpdate) SetModelType(ct consts.ModelType) *RecordUpdate {
ru.mutation.SetModelType(ct)
return ru
}
// SetNillableModelType sets the "model_type" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableModelType(ct *consts.ModelType) *RecordUpdate {
if ct != nil {
ru.SetModelType(*ct)
}
return ru
}
// ClearModelType clears the value of the "model_type" field.
func (ru *RecordUpdate) ClearModelType() *RecordUpdate {
ru.mutation.ClearModelType()
return ru
}
// SetPrompt sets the "prompt" field.
func (ru *RecordUpdate) SetPrompt(s string) *RecordUpdate {
ru.mutation.SetPrompt(s)
return ru
}
// SetNillablePrompt sets the "prompt" field if the given value is not nil.
func (ru *RecordUpdate) SetNillablePrompt(s *string) *RecordUpdate {
if s != nil {
ru.SetPrompt(*s)
}
return ru
}
// ClearPrompt clears the value of the "prompt" field.
func (ru *RecordUpdate) ClearPrompt() *RecordUpdate {
ru.mutation.ClearPrompt()
return ru
}
// SetCompletion sets the "completion" field.
func (ru *RecordUpdate) SetCompletion(s string) *RecordUpdate {
ru.mutation.SetCompletion(s)
return ru
}
// SetNillableCompletion sets the "completion" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableCompletion(s *string) *RecordUpdate {
if s != nil {
ru.SetCompletion(*s)
}
return ru
}
// ClearCompletion clears the value of the "completion" field.
func (ru *RecordUpdate) ClearCompletion() *RecordUpdate {
ru.mutation.ClearCompletion()
return ru
}
// SetIsAccept sets the "is_accept" field.
func (ru *RecordUpdate) SetIsAccept(b bool) *RecordUpdate {
ru.mutation.SetIsAccept(b)
return ru
}
// SetNillableIsAccept sets the "is_accept" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableIsAccept(b *bool) *RecordUpdate {
if b != nil {
ru.SetIsAccept(*b)
}
return ru
}
// SetProgramLanguage sets the "program_language" field.
func (ru *RecordUpdate) SetProgramLanguage(s string) *RecordUpdate {
ru.mutation.SetProgramLanguage(s)
return ru
}
// SetNillableProgramLanguage sets the "program_language" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableProgramLanguage(s *string) *RecordUpdate {
if s != nil {
ru.SetProgramLanguage(*s)
}
return ru
}
// ClearProgramLanguage clears the value of the "program_language" field.
func (ru *RecordUpdate) ClearProgramLanguage() *RecordUpdate {
ru.mutation.ClearProgramLanguage()
return ru
}
// SetWorkMode sets the "work_mode" field.
func (ru *RecordUpdate) SetWorkMode(s string) *RecordUpdate {
ru.mutation.SetWorkMode(s)
return ru
}
// SetNillableWorkMode sets the "work_mode" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableWorkMode(s *string) *RecordUpdate {
if s != nil {
ru.SetWorkMode(*s)
}
return ru
}
// ClearWorkMode clears the value of the "work_mode" field.
func (ru *RecordUpdate) ClearWorkMode() *RecordUpdate {
ru.mutation.ClearWorkMode()
return ru
}
// SetCodeLines sets the "code_lines" field.
func (ru *RecordUpdate) SetCodeLines(i int64) *RecordUpdate {
ru.mutation.ResetCodeLines()
ru.mutation.SetCodeLines(i)
return ru
}
// SetNillableCodeLines sets the "code_lines" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableCodeLines(i *int64) *RecordUpdate {
if i != nil {
ru.SetCodeLines(*i)
}
return ru
}
// AddCodeLines adds i to the "code_lines" field.
func (ru *RecordUpdate) AddCodeLines(i int64) *RecordUpdate {
ru.mutation.AddCodeLines(i)
return ru
}
// ClearCodeLines clears the value of the "code_lines" field.
func (ru *RecordUpdate) ClearCodeLines() *RecordUpdate {
ru.mutation.ClearCodeLines()
return ru
}
// SetInputTokens sets the "input_tokens" field.
func (ru *RecordUpdate) SetInputTokens(i int64) *RecordUpdate {
ru.mutation.ResetInputTokens()
ru.mutation.SetInputTokens(i)
return ru
}
// SetNillableInputTokens sets the "input_tokens" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableInputTokens(i *int64) *RecordUpdate {
if i != nil {
ru.SetInputTokens(*i)
}
return ru
}
// AddInputTokens adds i to the "input_tokens" field.
func (ru *RecordUpdate) AddInputTokens(i int64) *RecordUpdate {
ru.mutation.AddInputTokens(i)
return ru
}
// SetOutputTokens sets the "output_tokens" field.
func (ru *RecordUpdate) SetOutputTokens(i int64) *RecordUpdate {
ru.mutation.ResetOutputTokens()
ru.mutation.SetOutputTokens(i)
return ru
}
// SetNillableOutputTokens sets the "output_tokens" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableOutputTokens(i *int64) *RecordUpdate {
if i != nil {
ru.SetOutputTokens(*i)
}
return ru
}
// AddOutputTokens adds i to the "output_tokens" field.
func (ru *RecordUpdate) AddOutputTokens(i int64) *RecordUpdate {
ru.mutation.AddOutputTokens(i)
return ru
}
// SetCreatedAt sets the "created_at" field.
func (ru *RecordUpdate) SetCreatedAt(t time.Time) *RecordUpdate {
ru.mutation.SetCreatedAt(t)
return ru
}
// SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
func (ru *RecordUpdate) SetNillableCreatedAt(t *time.Time) *RecordUpdate {
if t != nil {
ru.SetCreatedAt(*t)
}
return ru
}
// SetUpdatedAt sets the "updated_at" field.
func (ru *RecordUpdate) SetUpdatedAt(t time.Time) *RecordUpdate {
ru.mutation.SetUpdatedAt(t)
return ru
}
// SetUser sets the "user" edge to the User entity.
func (ru *RecordUpdate) SetUser(u *User) *RecordUpdate {
return ru.SetUserID(u.ID)
}
// SetModel sets the "model" edge to the Model entity.
func (ru *RecordUpdate) SetModel(m *Model) *RecordUpdate {
return ru.SetModelID(m.ID)
}
// Mutation returns the RecordMutation object of the builder.
func (ru *RecordUpdate) Mutation() *RecordMutation {
return ru.mutation
}
// ClearUser clears the "user" edge to the User entity.
func (ru *RecordUpdate) ClearUser() *RecordUpdate {
ru.mutation.ClearUser()
return ru
}
// ClearModel clears the "model" edge to the Model entity.
func (ru *RecordUpdate) ClearModel() *RecordUpdate {
ru.mutation.ClearModel()
return ru
}
// Save executes the query and returns the number of nodes affected by the update operation.
func (ru *RecordUpdate) Save(ctx context.Context) (int, error) {
ru.defaults()
return withHooks(ctx, ru.sqlSave, ru.mutation, ru.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (ru *RecordUpdate) SaveX(ctx context.Context) int {
affected, err := ru.Save(ctx)
if err != nil {
panic(err)
}
return affected
}
// Exec executes the query.
func (ru *RecordUpdate) Exec(ctx context.Context) error {
_, err := ru.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (ru *RecordUpdate) ExecX(ctx context.Context) {
if err := ru.Exec(ctx); err != nil {
panic(err)
}
}
// defaults sets the default values of the builder before save.
func (ru *RecordUpdate) defaults() {
if _, ok := ru.mutation.UpdatedAt(); !ok {
v := record.UpdateDefaultUpdatedAt()
ru.mutation.SetUpdatedAt(v)
}
}
// Modify adds a statement modifier for attaching custom logic to the UPDATE statement.
func (ru *RecordUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *RecordUpdate {
ru.modifiers = append(ru.modifiers, modifiers...)
return ru
}
func (ru *RecordUpdate) sqlSave(ctx context.Context) (n int, err error) {
_spec := sqlgraph.NewUpdateSpec(record.Table, record.Columns, sqlgraph.NewFieldSpec(record.FieldID, field.TypeUUID))
if ps := ru.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := ru.mutation.TaskID(); ok {
_spec.SetField(record.FieldTaskID, field.TypeString, value)
}
if value, ok := ru.mutation.ModelType(); ok {
_spec.SetField(record.FieldModelType, field.TypeString, value)
}
if ru.mutation.ModelTypeCleared() {
_spec.ClearField(record.FieldModelType, field.TypeString)
}
if value, ok := ru.mutation.Prompt(); ok {
_spec.SetField(record.FieldPrompt, field.TypeString, value)
}
if ru.mutation.PromptCleared() {
_spec.ClearField(record.FieldPrompt, field.TypeString)
}
if value, ok := ru.mutation.Completion(); ok {
_spec.SetField(record.FieldCompletion, field.TypeString, value)
}
if ru.mutation.CompletionCleared() {
_spec.ClearField(record.FieldCompletion, field.TypeString)
}
if value, ok := ru.mutation.IsAccept(); ok {
_spec.SetField(record.FieldIsAccept, field.TypeBool, value)
}
if value, ok := ru.mutation.ProgramLanguage(); ok {
_spec.SetField(record.FieldProgramLanguage, field.TypeString, value)
}
if ru.mutation.ProgramLanguageCleared() {
_spec.ClearField(record.FieldProgramLanguage, field.TypeString)
}
if value, ok := ru.mutation.WorkMode(); ok {
_spec.SetField(record.FieldWorkMode, field.TypeString, value)
}
if ru.mutation.WorkModeCleared() {
_spec.ClearField(record.FieldWorkMode, field.TypeString)
}
if value, ok := ru.mutation.CodeLines(); ok {
_spec.SetField(record.FieldCodeLines, field.TypeInt64, value)
}
if value, ok := ru.mutation.AddedCodeLines(); ok {
_spec.AddField(record.FieldCodeLines, field.TypeInt64, value)
}
if ru.mutation.CodeLinesCleared() {
_spec.ClearField(record.FieldCodeLines, field.TypeInt64)
}
if value, ok := ru.mutation.InputTokens(); ok {
_spec.SetField(record.FieldInputTokens, field.TypeInt64, value)
}
if value, ok := ru.mutation.AddedInputTokens(); ok {
_spec.AddField(record.FieldInputTokens, field.TypeInt64, value)
}
if value, ok := ru.mutation.OutputTokens(); ok {
_spec.SetField(record.FieldOutputTokens, field.TypeInt64, value)
}
if value, ok := ru.mutation.AddedOutputTokens(); ok {
_spec.AddField(record.FieldOutputTokens, field.TypeInt64, value)
}
if value, ok := ru.mutation.CreatedAt(); ok {
_spec.SetField(record.FieldCreatedAt, field.TypeTime, value)
}
if value, ok := ru.mutation.UpdatedAt(); ok {
_spec.SetField(record.FieldUpdatedAt, field.TypeTime, value)
}
if ru.mutation.UserCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.UserTable,
Columns: []string{record.UserColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := ru.mutation.UserIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.UserTable,
Columns: []string{record.UserColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if ru.mutation.ModelCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.ModelTable,
Columns: []string{record.ModelColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(model.FieldID, field.TypeUUID),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := ru.mutation.ModelIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.ModelTable,
Columns: []string{record.ModelColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(model.FieldID, field.TypeUUID),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
_spec.AddModifiers(ru.modifiers...)
if n, err = sqlgraph.UpdateNodes(ctx, ru.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{record.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return 0, err
}
ru.mutation.done = true
return n, nil
}
// RecordUpdateOne is the builder for updating a single Record entity.
type RecordUpdateOne struct {
config
fields []string
hooks []Hook
mutation *RecordMutation
modifiers []func(*sql.UpdateBuilder)
}
// SetUserID sets the "user_id" field.
func (ruo *RecordUpdateOne) SetUserID(u uuid.UUID) *RecordUpdateOne {
ruo.mutation.SetUserID(u)
return ruo
}
// SetNillableUserID sets the "user_id" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableUserID(u *uuid.UUID) *RecordUpdateOne {
if u != nil {
ruo.SetUserID(*u)
}
return ruo
}
// ClearUserID clears the value of the "user_id" field.
func (ruo *RecordUpdateOne) ClearUserID() *RecordUpdateOne {
ruo.mutation.ClearUserID()
return ruo
}
// SetModelID sets the "model_id" field.
func (ruo *RecordUpdateOne) SetModelID(u uuid.UUID) *RecordUpdateOne {
ruo.mutation.SetModelID(u)
return ruo
}
// SetNillableModelID sets the "model_id" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableModelID(u *uuid.UUID) *RecordUpdateOne {
if u != nil {
ruo.SetModelID(*u)
}
return ruo
}
// ClearModelID clears the value of the "model_id" field.
func (ruo *RecordUpdateOne) ClearModelID() *RecordUpdateOne {
ruo.mutation.ClearModelID()
return ruo
}
// SetTaskID sets the "task_id" field.
func (ruo *RecordUpdateOne) SetTaskID(s string) *RecordUpdateOne {
ruo.mutation.SetTaskID(s)
return ruo
}
// SetNillableTaskID sets the "task_id" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableTaskID(s *string) *RecordUpdateOne {
if s != nil {
ruo.SetTaskID(*s)
}
return ruo
}
// SetModelType sets the "model_type" field.
func (ruo *RecordUpdateOne) SetModelType(ct consts.ModelType) *RecordUpdateOne {
ruo.mutation.SetModelType(ct)
return ruo
}
// SetNillableModelType sets the "model_type" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableModelType(ct *consts.ModelType) *RecordUpdateOne {
if ct != nil {
ruo.SetModelType(*ct)
}
return ruo
}
// ClearModelType clears the value of the "model_type" field.
func (ruo *RecordUpdateOne) ClearModelType() *RecordUpdateOne {
ruo.mutation.ClearModelType()
return ruo
}
// SetPrompt sets the "prompt" field.
func (ruo *RecordUpdateOne) SetPrompt(s string) *RecordUpdateOne {
ruo.mutation.SetPrompt(s)
return ruo
}
// SetNillablePrompt sets the "prompt" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillablePrompt(s *string) *RecordUpdateOne {
if s != nil {
ruo.SetPrompt(*s)
}
return ruo
}
// ClearPrompt clears the value of the "prompt" field.
func (ruo *RecordUpdateOne) ClearPrompt() *RecordUpdateOne {
ruo.mutation.ClearPrompt()
return ruo
}
// SetCompletion sets the "completion" field.
func (ruo *RecordUpdateOne) SetCompletion(s string) *RecordUpdateOne {
ruo.mutation.SetCompletion(s)
return ruo
}
// SetNillableCompletion sets the "completion" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableCompletion(s *string) *RecordUpdateOne {
if s != nil {
ruo.SetCompletion(*s)
}
return ruo
}
// ClearCompletion clears the value of the "completion" field.
func (ruo *RecordUpdateOne) ClearCompletion() *RecordUpdateOne {
ruo.mutation.ClearCompletion()
return ruo
}
// SetIsAccept sets the "is_accept" field.
func (ruo *RecordUpdateOne) SetIsAccept(b bool) *RecordUpdateOne {
ruo.mutation.SetIsAccept(b)
return ruo
}
// SetNillableIsAccept sets the "is_accept" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableIsAccept(b *bool) *RecordUpdateOne {
if b != nil {
ruo.SetIsAccept(*b)
}
return ruo
}
// SetProgramLanguage sets the "program_language" field.
func (ruo *RecordUpdateOne) SetProgramLanguage(s string) *RecordUpdateOne {
ruo.mutation.SetProgramLanguage(s)
return ruo
}
// SetNillableProgramLanguage sets the "program_language" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableProgramLanguage(s *string) *RecordUpdateOne {
if s != nil {
ruo.SetProgramLanguage(*s)
}
return ruo
}
// ClearProgramLanguage clears the value of the "program_language" field.
func (ruo *RecordUpdateOne) ClearProgramLanguage() *RecordUpdateOne {
ruo.mutation.ClearProgramLanguage()
return ruo
}
// SetWorkMode sets the "work_mode" field.
func (ruo *RecordUpdateOne) SetWorkMode(s string) *RecordUpdateOne {
ruo.mutation.SetWorkMode(s)
return ruo
}
// SetNillableWorkMode sets the "work_mode" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableWorkMode(s *string) *RecordUpdateOne {
if s != nil {
ruo.SetWorkMode(*s)
}
return ruo
}
// ClearWorkMode clears the value of the "work_mode" field.
func (ruo *RecordUpdateOne) ClearWorkMode() *RecordUpdateOne {
ruo.mutation.ClearWorkMode()
return ruo
}
// SetCodeLines sets the "code_lines" field.
func (ruo *RecordUpdateOne) SetCodeLines(i int64) *RecordUpdateOne {
ruo.mutation.ResetCodeLines()
ruo.mutation.SetCodeLines(i)
return ruo
}
// SetNillableCodeLines sets the "code_lines" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableCodeLines(i *int64) *RecordUpdateOne {
if i != nil {
ruo.SetCodeLines(*i)
}
return ruo
}
// AddCodeLines adds i to the "code_lines" field.
func (ruo *RecordUpdateOne) AddCodeLines(i int64) *RecordUpdateOne {
ruo.mutation.AddCodeLines(i)
return ruo
}
// ClearCodeLines clears the value of the "code_lines" field.
func (ruo *RecordUpdateOne) ClearCodeLines() *RecordUpdateOne {
ruo.mutation.ClearCodeLines()
return ruo
}
// SetInputTokens sets the "input_tokens" field.
func (ruo *RecordUpdateOne) SetInputTokens(i int64) *RecordUpdateOne {
ruo.mutation.ResetInputTokens()
ruo.mutation.SetInputTokens(i)
return ruo
}
// SetNillableInputTokens sets the "input_tokens" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableInputTokens(i *int64) *RecordUpdateOne {
if i != nil {
ruo.SetInputTokens(*i)
}
return ruo
}
// AddInputTokens adds i to the "input_tokens" field.
func (ruo *RecordUpdateOne) AddInputTokens(i int64) *RecordUpdateOne {
ruo.mutation.AddInputTokens(i)
return ruo
}
// SetOutputTokens sets the "output_tokens" field.
func (ruo *RecordUpdateOne) SetOutputTokens(i int64) *RecordUpdateOne {
ruo.mutation.ResetOutputTokens()
ruo.mutation.SetOutputTokens(i)
return ruo
}
// SetNillableOutputTokens sets the "output_tokens" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableOutputTokens(i *int64) *RecordUpdateOne {
if i != nil {
ruo.SetOutputTokens(*i)
}
return ruo
}
// AddOutputTokens adds i to the "output_tokens" field.
func (ruo *RecordUpdateOne) AddOutputTokens(i int64) *RecordUpdateOne {
ruo.mutation.AddOutputTokens(i)
return ruo
}
// SetCreatedAt sets the "created_at" field.
func (ruo *RecordUpdateOne) SetCreatedAt(t time.Time) *RecordUpdateOne {
ruo.mutation.SetCreatedAt(t)
return ruo
}
// SetNillableCreatedAt sets the "created_at" field if the given value is not nil.
func (ruo *RecordUpdateOne) SetNillableCreatedAt(t *time.Time) *RecordUpdateOne {
if t != nil {
ruo.SetCreatedAt(*t)
}
return ruo
}
// SetUpdatedAt sets the "updated_at" field.
func (ruo *RecordUpdateOne) SetUpdatedAt(t time.Time) *RecordUpdateOne {
ruo.mutation.SetUpdatedAt(t)
return ruo
}
// SetUser sets the "user" edge to the User entity.
func (ruo *RecordUpdateOne) SetUser(u *User) *RecordUpdateOne {
return ruo.SetUserID(u.ID)
}
// SetModel sets the "model" edge to the Model entity.
func (ruo *RecordUpdateOne) SetModel(m *Model) *RecordUpdateOne {
return ruo.SetModelID(m.ID)
}
// Mutation returns the RecordMutation object of the builder.
func (ruo *RecordUpdateOne) Mutation() *RecordMutation {
return ruo.mutation
}
// ClearUser clears the "user" edge to the User entity.
func (ruo *RecordUpdateOne) ClearUser() *RecordUpdateOne {
ruo.mutation.ClearUser()
return ruo
}
// ClearModel clears the "model" edge to the Model entity.
func (ruo *RecordUpdateOne) ClearModel() *RecordUpdateOne {
ruo.mutation.ClearModel()
return ruo
}
// Where appends a list predicates to the RecordUpdate builder.
func (ruo *RecordUpdateOne) Where(ps ...predicate.Record) *RecordUpdateOne {
ruo.mutation.Where(ps...)
return ruo
}
// Select allows selecting one or more fields (columns) of the returned entity.
// The default is selecting all fields defined in the entity schema.
func (ruo *RecordUpdateOne) Select(field string, fields ...string) *RecordUpdateOne {
ruo.fields = append([]string{field}, fields...)
return ruo
}
// Save executes the query and returns the updated Record entity.
func (ruo *RecordUpdateOne) Save(ctx context.Context) (*Record, error) {
ruo.defaults()
return withHooks(ctx, ruo.sqlSave, ruo.mutation, ruo.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (ruo *RecordUpdateOne) SaveX(ctx context.Context) *Record {
node, err := ruo.Save(ctx)
if err != nil {
panic(err)
}
return node
}
// Exec executes the query on the entity.
func (ruo *RecordUpdateOne) Exec(ctx context.Context) error {
_, err := ruo.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (ruo *RecordUpdateOne) ExecX(ctx context.Context) {
if err := ruo.Exec(ctx); err != nil {
panic(err)
}
}
// defaults sets the default values of the builder before save.
func (ruo *RecordUpdateOne) defaults() {
if _, ok := ruo.mutation.UpdatedAt(); !ok {
v := record.UpdateDefaultUpdatedAt()
ruo.mutation.SetUpdatedAt(v)
}
}
// Modify adds a statement modifier for attaching custom logic to the UPDATE statement.
func (ruo *RecordUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *RecordUpdateOne {
ruo.modifiers = append(ruo.modifiers, modifiers...)
return ruo
}
func (ruo *RecordUpdateOne) sqlSave(ctx context.Context) (_node *Record, err error) {
_spec := sqlgraph.NewUpdateSpec(record.Table, record.Columns, sqlgraph.NewFieldSpec(record.FieldID, field.TypeUUID))
id, ok := ruo.mutation.ID()
if !ok {
return nil, &ValidationError{Name: "id", err: errors.New(`db: missing "Record.id" for update`)}
}
_spec.Node.ID.Value = id
if fields := ruo.fields; len(fields) > 0 {
_spec.Node.Columns = make([]string, 0, len(fields))
_spec.Node.Columns = append(_spec.Node.Columns, record.FieldID)
for _, f := range fields {
if !record.ValidColumn(f) {
return nil, &ValidationError{Name: f, err: fmt.Errorf("db: invalid field %q for query", f)}
}
if f != record.FieldID {
_spec.Node.Columns = append(_spec.Node.Columns, f)
}
}
}
if ps := ruo.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := ruo.mutation.TaskID(); ok {
_spec.SetField(record.FieldTaskID, field.TypeString, value)
}
if value, ok := ruo.mutation.ModelType(); ok {
_spec.SetField(record.FieldModelType, field.TypeString, value)
}
if ruo.mutation.ModelTypeCleared() {
_spec.ClearField(record.FieldModelType, field.TypeString)
}
if value, ok := ruo.mutation.Prompt(); ok {
_spec.SetField(record.FieldPrompt, field.TypeString, value)
}
if ruo.mutation.PromptCleared() {
_spec.ClearField(record.FieldPrompt, field.TypeString)
}
if value, ok := ruo.mutation.Completion(); ok {
_spec.SetField(record.FieldCompletion, field.TypeString, value)
}
if ruo.mutation.CompletionCleared() {
_spec.ClearField(record.FieldCompletion, field.TypeString)
}
if value, ok := ruo.mutation.IsAccept(); ok {
_spec.SetField(record.FieldIsAccept, field.TypeBool, value)
}
if value, ok := ruo.mutation.ProgramLanguage(); ok {
_spec.SetField(record.FieldProgramLanguage, field.TypeString, value)
}
if ruo.mutation.ProgramLanguageCleared() {
_spec.ClearField(record.FieldProgramLanguage, field.TypeString)
}
if value, ok := ruo.mutation.WorkMode(); ok {
_spec.SetField(record.FieldWorkMode, field.TypeString, value)
}
if ruo.mutation.WorkModeCleared() {
_spec.ClearField(record.FieldWorkMode, field.TypeString)
}
if value, ok := ruo.mutation.CodeLines(); ok {
_spec.SetField(record.FieldCodeLines, field.TypeInt64, value)
}
if value, ok := ruo.mutation.AddedCodeLines(); ok {
_spec.AddField(record.FieldCodeLines, field.TypeInt64, value)
}
if ruo.mutation.CodeLinesCleared() {
_spec.ClearField(record.FieldCodeLines, field.TypeInt64)
}
if value, ok := ruo.mutation.InputTokens(); ok {
_spec.SetField(record.FieldInputTokens, field.TypeInt64, value)
}
if value, ok := ruo.mutation.AddedInputTokens(); ok {
_spec.AddField(record.FieldInputTokens, field.TypeInt64, value)
}
if value, ok := ruo.mutation.OutputTokens(); ok {
_spec.SetField(record.FieldOutputTokens, field.TypeInt64, value)
}
if value, ok := ruo.mutation.AddedOutputTokens(); ok {
_spec.AddField(record.FieldOutputTokens, field.TypeInt64, value)
}
if value, ok := ruo.mutation.CreatedAt(); ok {
_spec.SetField(record.FieldCreatedAt, field.TypeTime, value)
}
if value, ok := ruo.mutation.UpdatedAt(); ok {
_spec.SetField(record.FieldUpdatedAt, field.TypeTime, value)
}
if ruo.mutation.UserCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.UserTable,
Columns: []string{record.UserColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := ruo.mutation.UserIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.UserTable,
Columns: []string{record.UserColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(user.FieldID, field.TypeUUID),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if ruo.mutation.ModelCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.ModelTable,
Columns: []string{record.ModelColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(model.FieldID, field.TypeUUID),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := ruo.mutation.ModelIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.M2O,
Inverse: true,
Table: record.ModelTable,
Columns: []string{record.ModelColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(model.FieldID, field.TypeUUID),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
_spec.AddModifiers(ruo.modifiers...)
_node = &Record{config: ruo.config}
_spec.Assign = _node.assignValues
_spec.ScanValues = _node.scanValues
if err = sqlgraph.UpdateNode(ctx, ruo.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{record.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return nil, err
}
ruo.mutation.done = true
return _node, nil
}