// Copyright 2019-present Facebook Inc. All rights reserved. // This source code is licensed under the Apache 2.0 license found // in the LICENSE file in the root directory of this source tree. // Code generated by ent, DO NOT EDIT. package ent import ( "fmt" "strings" "time" "entgo.io/ent/dialect/gremlin" "entgo.io/ent/entc/integration/gremlin/ent/filetype" "entgo.io/ent/entc/integration/gremlin/ent/user" ) // File is the model entity for the File schema. type File struct { config `json:"-"` // ID of the ent. ID string `json:"id,omitempty"` // SetID holds the value of the "set_id" field. SetID int `json:"set_id,omitempty"` // Size holds the value of the "size" field. Size int `json:"size,omitempty"` // Name holds the value of the "name" field. Name string `json:"name,omitempty"` // User holds the value of the "user" field. User *string `json:"user,omitempty"` // Group holds the value of the "group" field. Group string `json:"group,omitempty"` // Op holds the value of the "op" field. Op bool `json:"op,omitempty"` // FieldID holds the value of the "field_id" field. FieldID int `json:"field_id,omitempty"` // CreateTime holds the value of the "create_time" field. CreateTime time.Time `json:"create_time,omitempty"` // Edges holds the relations/edges for other nodes in the graph. // The values are being populated by the FileQuery when eager-loading is set. Edges FileEdges `json:"file_edges"` } // FileEdges holds the relations/edges for other nodes in the graph. type FileEdges struct { // Owner holds the value of the owner edge. Owner *User `json:"owner,omitempty"` // Type holds the value of the type edge. Type *FileType `json:"type,omitempty"` // Field holds the value of the field edge. Field []*FieldType `json:"field,omitempty"` // loadedTypes holds the information for reporting if a // type was loaded (or requested) in eager-loading or not. loadedTypes [3]bool } // OwnerOrErr returns the Owner value or an error if the edge // was not loaded in eager-loading, or loaded but was not found. func (e FileEdges) OwnerOrErr() (*User, error) { if e.Owner != nil { return e.Owner, nil } else if e.loadedTypes[0] { return nil, &NotFoundError{label: user.Label} } return nil, &NotLoadedError{edge: "owner"} } // TypeOrErr returns the Type value or an error if the edge // was not loaded in eager-loading, or loaded but was not found. func (e FileEdges) TypeOrErr() (*FileType, error) { if e.Type != nil { return e.Type, nil } else if e.loadedTypes[1] { return nil, &NotFoundError{label: filetype.Label} } return nil, &NotLoadedError{edge: "type"} } // FieldOrErr returns the Field value or an error if the edge // was not loaded in eager-loading. func (e FileEdges) FieldOrErr() ([]*FieldType, error) { if e.loadedTypes[2] { return e.Field, nil } return nil, &NotLoadedError{edge: "field"} } // FromResponse scans the gremlin response data into File. func (_m *File) FromResponse(res *gremlin.Response) error { vmap, err := res.ReadValueMap() if err != nil { return err } var scan_m struct { ID string `json:"id,omitempty"` SetID int `json:"set_id,omitempty"` Size int `json:"fsize,omitempty"` Name string `json:"name,omitempty"` User *string `json:"user,omitempty"` Group string `json:"group,omitempty"` Op bool `json:"op,omitempty"` FieldID int `json:"field_id,omitempty"` CreateTime int64 `json:"create_time,omitempty"` } if err := vmap.Decode(&scan_m); err != nil { return err } _m.ID = scan_m.ID _m.SetID = scan_m.SetID _m.Size = scan_m.Size _m.Name = scan_m.Name _m.User = scan_m.User _m.Group = scan_m.Group _m.Op = scan_m.Op _m.FieldID = scan_m.FieldID _m.CreateTime = time.Unix(0, scan_m.CreateTime) return nil } // QueryOwner queries the "owner" edge of the File entity. func (_m *File) QueryOwner() *UserQuery { return NewFileClient(_m.config).QueryOwner(_m) } // QueryType queries the "type" edge of the File entity. func (_m *File) QueryType() *FileTypeQuery { return NewFileClient(_m.config).QueryType(_m) } // QueryField queries the "field" edge of the File entity. func (_m *File) QueryField() *FieldTypeQuery { return NewFileClient(_m.config).QueryField(_m) } // Update returns a builder for updating this File. // Note that you need to call File.Unwrap() before calling this method if this File // was returned from a transaction, and the transaction was committed or rolled back. func (_m *File) Update() *FileUpdateOne { return NewFileClient(_m.config).UpdateOne(_m) } // Unwrap unwraps the File entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (_m *File) Unwrap() *File { _tx, ok := _m.config.driver.(*txDriver) if !ok { panic("ent: File is not a transactional entity") } _m.config.driver = _tx.drv return _m } // String implements the fmt.Stringer. func (_m *File) String() string { var builder strings.Builder builder.WriteString("File(") builder.WriteString(fmt.Sprintf("id=%v, ", _m.ID)) builder.WriteString("set_id=") builder.WriteString(fmt.Sprintf("%v", _m.SetID)) builder.WriteString(", ") builder.WriteString("size=") builder.WriteString(fmt.Sprintf("%v", _m.Size)) builder.WriteString(", ") builder.WriteString("name=") builder.WriteString(_m.Name) builder.WriteString(", ") if v := _m.User; v != nil { builder.WriteString("user=") builder.WriteString(*v) } builder.WriteString(", ") builder.WriteString("group=") builder.WriteString(_m.Group) builder.WriteString(", ") builder.WriteString("op=") builder.WriteString(fmt.Sprintf("%v", _m.Op)) builder.WriteString(", ") builder.WriteString("field_id=") builder.WriteString(fmt.Sprintf("%v", _m.FieldID)) builder.WriteString(", ") builder.WriteString("create_time=") builder.WriteString(_m.CreateTime.Format(time.ANSIC)) builder.WriteByte(')') return builder.String() } // Files is a parsable slice of File. type Files []*File // FromResponse scans the gremlin response data into Files. func (_m *Files) FromResponse(res *gremlin.Response) error { vmap, err := res.ReadValueMap() if err != nil { return err } var scan_m []struct { ID string `json:"id,omitempty"` SetID int `json:"set_id,omitempty"` Size int `json:"fsize,omitempty"` Name string `json:"name,omitempty"` User *string `json:"user,omitempty"` Group string `json:"group,omitempty"` Op bool `json:"op,omitempty"` FieldID int `json:"field_id,omitempty"` CreateTime int64 `json:"create_time,omitempty"` } if err := vmap.Decode(&scan_m); err != nil { return err } for _, v := range scan_m { node := &File{ID: v.ID} node.SetID = v.SetID node.Size = v.Size node.Name = v.Name node.User = v.User node.Group = v.Group node.Op = v.Op node.FieldID = v.FieldID node.CreateTime = time.Unix(0, v.CreateTime) *_m = append(*_m, node) } return nil }