forked from ent/contrib
/
image.go
140 lines (126 loc) · 4.35 KB
/
image.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Code generated by ent, DO NOT EDIT.
package ent
import (
"fmt"
"strings"
"entgo.io/ent"
"entgo.io/ent/dialect/sql"
"github.com/dmalykh/entcontrib/entproto/internal/entprototest/ent/image"
"github.com/google/uuid"
)
// Image is the model entity for the Image schema.
type Image struct {
config `json:"-"`
// ID of the ent.
ID uuid.UUID `json:"id,omitempty"`
// URLPath holds the value of the "url_path" field.
URLPath string `json:"url_path,omitempty"`
// Edges holds the relations/edges for other nodes in the graph.
// The values are being populated by the ImageQuery when eager-loading is set.
Edges ImageEdges `json:"edges"`
no_backref_images *int
selectValues sql.SelectValues
}
// ImageEdges holds the relations/edges for other nodes in the graph.
type ImageEdges struct {
// UserProfilePic holds the value of the user_profile_pic edge.
UserProfilePic []*User `json:"user_profile_pic,omitempty"`
// loadedTypes holds the information for reporting if a
// type was loaded (or requested) in eager-loading or not.
loadedTypes [1]bool
}
// UserProfilePicOrErr returns the UserProfilePic value or an error if the edge
// was not loaded in eager-loading.
func (e ImageEdges) UserProfilePicOrErr() ([]*User, error) {
if e.loadedTypes[0] {
return e.UserProfilePic, nil
}
return nil, &NotLoadedError{edge: "user_profile_pic"}
}
// scanValues returns the types for scanning values from sql.Rows.
func (*Image) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns))
for i := range columns {
switch columns[i] {
case image.FieldURLPath:
values[i] = new(sql.NullString)
case image.FieldID:
values[i] = new(uuid.UUID)
case image.ForeignKeys[0]: // no_backref_images
values[i] = new(sql.NullInt64)
default:
values[i] = new(sql.UnknownType)
}
}
return values, nil
}
// assignValues assigns the values that were returned from sql.Rows (after scanning)
// to the Image fields.
func (i *Image) assignValues(columns []string, values []any) error {
if m, n := len(values), len(columns); m < n {
return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
}
for j := range columns {
switch columns[j] {
case image.FieldID:
if value, ok := values[j].(*uuid.UUID); !ok {
return fmt.Errorf("unexpected type %T for field id", values[j])
} else if value != nil {
i.ID = *value
}
case image.FieldURLPath:
if value, ok := values[j].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field url_path", values[j])
} else if value.Valid {
i.URLPath = value.String
}
case image.ForeignKeys[0]:
if value, ok := values[j].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for edge-field no_backref_images", value)
} else if value.Valid {
i.no_backref_images = new(int)
*i.no_backref_images = int(value.Int64)
}
default:
i.selectValues.Set(columns[j], values[j])
}
}
return nil
}
// Value returns the ent.Value that was dynamically selected and assigned to the Image.
// This includes values selected through modifiers, order, etc.
func (i *Image) Value(name string) (ent.Value, error) {
return i.selectValues.Get(name)
}
// QueryUserProfilePic queries the "user_profile_pic" edge of the Image entity.
func (i *Image) QueryUserProfilePic() *UserQuery {
return NewImageClient(i.config).QueryUserProfilePic(i)
}
// Update returns a builder for updating this Image.
// Note that you need to call Image.Unwrap() before calling this method if this Image
// was returned from a transaction, and the transaction was committed or rolled back.
func (i *Image) Update() *ImageUpdateOne {
return NewImageClient(i.config).UpdateOne(i)
}
// Unwrap unwraps the Image 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 (i *Image) Unwrap() *Image {
_tx, ok := i.config.driver.(*txDriver)
if !ok {
panic("ent: Image is not a transactional entity")
}
i.config.driver = _tx.drv
return i
}
// String implements the fmt.Stringer.
func (i *Image) String() string {
var builder strings.Builder
builder.WriteString("Image(")
builder.WriteString(fmt.Sprintf("id=%v, ", i.ID))
builder.WriteString("url_path=")
builder.WriteString(i.URLPath)
builder.WriteByte(')')
return builder.String()
}
// Images is a parsable slice of Image.
type Images []*Image