promocodeusage.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "fmt"
  5. "strings"
  6. "time"
  7. "entgo.io/ent"
  8. "entgo.io/ent/dialect/sql"
  9. "github.com/Wei-Shaw/sub2api/ent/promocode"
  10. "github.com/Wei-Shaw/sub2api/ent/promocodeusage"
  11. "github.com/Wei-Shaw/sub2api/ent/user"
  12. )
  13. // PromoCodeUsage is the model entity for the PromoCodeUsage schema.
  14. type PromoCodeUsage struct {
  15. config `json:"-"`
  16. // ID of the ent.
  17. ID int64 `json:"id,omitempty"`
  18. // 优惠码ID
  19. PromoCodeID int64 `json:"promo_code_id,omitempty"`
  20. // 使用用户ID
  21. UserID int64 `json:"user_id,omitempty"`
  22. // 实际赠送金额
  23. BonusAmount float64 `json:"bonus_amount,omitempty"`
  24. // 使用时间
  25. UsedAt time.Time `json:"used_at,omitempty"`
  26. // Edges holds the relations/edges for other nodes in the graph.
  27. // The values are being populated by the PromoCodeUsageQuery when eager-loading is set.
  28. Edges PromoCodeUsageEdges `json:"edges"`
  29. selectValues sql.SelectValues
  30. }
  31. // PromoCodeUsageEdges holds the relations/edges for other nodes in the graph.
  32. type PromoCodeUsageEdges struct {
  33. // PromoCode holds the value of the promo_code edge.
  34. PromoCode *PromoCode `json:"promo_code,omitempty"`
  35. // User holds the value of the user edge.
  36. User *User `json:"user,omitempty"`
  37. // loadedTypes holds the information for reporting if a
  38. // type was loaded (or requested) in eager-loading or not.
  39. loadedTypes [2]bool
  40. }
  41. // PromoCodeOrErr returns the PromoCode value or an error if the edge
  42. // was not loaded in eager-loading, or loaded but was not found.
  43. func (e PromoCodeUsageEdges) PromoCodeOrErr() (*PromoCode, error) {
  44. if e.PromoCode != nil {
  45. return e.PromoCode, nil
  46. } else if e.loadedTypes[0] {
  47. return nil, &NotFoundError{label: promocode.Label}
  48. }
  49. return nil, &NotLoadedError{edge: "promo_code"}
  50. }
  51. // UserOrErr returns the User value or an error if the edge
  52. // was not loaded in eager-loading, or loaded but was not found.
  53. func (e PromoCodeUsageEdges) UserOrErr() (*User, error) {
  54. if e.User != nil {
  55. return e.User, nil
  56. } else if e.loadedTypes[1] {
  57. return nil, &NotFoundError{label: user.Label}
  58. }
  59. return nil, &NotLoadedError{edge: "user"}
  60. }
  61. // scanValues returns the types for scanning values from sql.Rows.
  62. func (*PromoCodeUsage) scanValues(columns []string) ([]any, error) {
  63. values := make([]any, len(columns))
  64. for i := range columns {
  65. switch columns[i] {
  66. case promocodeusage.FieldBonusAmount:
  67. values[i] = new(sql.NullFloat64)
  68. case promocodeusage.FieldID, promocodeusage.FieldPromoCodeID, promocodeusage.FieldUserID:
  69. values[i] = new(sql.NullInt64)
  70. case promocodeusage.FieldUsedAt:
  71. values[i] = new(sql.NullTime)
  72. default:
  73. values[i] = new(sql.UnknownType)
  74. }
  75. }
  76. return values, nil
  77. }
  78. // assignValues assigns the values that were returned from sql.Rows (after scanning)
  79. // to the PromoCodeUsage fields.
  80. func (_m *PromoCodeUsage) assignValues(columns []string, values []any) error {
  81. if m, n := len(values), len(columns); m < n {
  82. return fmt.Errorf("mismatch number of scan values: %d != %d", m, n)
  83. }
  84. for i := range columns {
  85. switch columns[i] {
  86. case promocodeusage.FieldID:
  87. value, ok := values[i].(*sql.NullInt64)
  88. if !ok {
  89. return fmt.Errorf("unexpected type %T for field id", value)
  90. }
  91. _m.ID = int64(value.Int64)
  92. case promocodeusage.FieldPromoCodeID:
  93. if value, ok := values[i].(*sql.NullInt64); !ok {
  94. return fmt.Errorf("unexpected type %T for field promo_code_id", values[i])
  95. } else if value.Valid {
  96. _m.PromoCodeID = value.Int64
  97. }
  98. case promocodeusage.FieldUserID:
  99. if value, ok := values[i].(*sql.NullInt64); !ok {
  100. return fmt.Errorf("unexpected type %T for field user_id", values[i])
  101. } else if value.Valid {
  102. _m.UserID = value.Int64
  103. }
  104. case promocodeusage.FieldBonusAmount:
  105. if value, ok := values[i].(*sql.NullFloat64); !ok {
  106. return fmt.Errorf("unexpected type %T for field bonus_amount", values[i])
  107. } else if value.Valid {
  108. _m.BonusAmount = value.Float64
  109. }
  110. case promocodeusage.FieldUsedAt:
  111. if value, ok := values[i].(*sql.NullTime); !ok {
  112. return fmt.Errorf("unexpected type %T for field used_at", values[i])
  113. } else if value.Valid {
  114. _m.UsedAt = value.Time
  115. }
  116. default:
  117. _m.selectValues.Set(columns[i], values[i])
  118. }
  119. }
  120. return nil
  121. }
  122. // Value returns the ent.Value that was dynamically selected and assigned to the PromoCodeUsage.
  123. // This includes values selected through modifiers, order, etc.
  124. func (_m *PromoCodeUsage) Value(name string) (ent.Value, error) {
  125. return _m.selectValues.Get(name)
  126. }
  127. // QueryPromoCode queries the "promo_code" edge of the PromoCodeUsage entity.
  128. func (_m *PromoCodeUsage) QueryPromoCode() *PromoCodeQuery {
  129. return NewPromoCodeUsageClient(_m.config).QueryPromoCode(_m)
  130. }
  131. // QueryUser queries the "user" edge of the PromoCodeUsage entity.
  132. func (_m *PromoCodeUsage) QueryUser() *UserQuery {
  133. return NewPromoCodeUsageClient(_m.config).QueryUser(_m)
  134. }
  135. // Update returns a builder for updating this PromoCodeUsage.
  136. // Note that you need to call PromoCodeUsage.Unwrap() before calling this method if this PromoCodeUsage
  137. // was returned from a transaction, and the transaction was committed or rolled back.
  138. func (_m *PromoCodeUsage) Update() *PromoCodeUsageUpdateOne {
  139. return NewPromoCodeUsageClient(_m.config).UpdateOne(_m)
  140. }
  141. // Unwrap unwraps the PromoCodeUsage entity that was returned from a transaction after it was closed,
  142. // so that all future queries will be executed through the driver which created the transaction.
  143. func (_m *PromoCodeUsage) Unwrap() *PromoCodeUsage {
  144. _tx, ok := _m.config.driver.(*txDriver)
  145. if !ok {
  146. panic("ent: PromoCodeUsage is not a transactional entity")
  147. }
  148. _m.config.driver = _tx.drv
  149. return _m
  150. }
  151. // String implements the fmt.Stringer.
  152. func (_m *PromoCodeUsage) String() string {
  153. var builder strings.Builder
  154. builder.WriteString("PromoCodeUsage(")
  155. builder.WriteString(fmt.Sprintf("id=%v, ", _m.ID))
  156. builder.WriteString("promo_code_id=")
  157. builder.WriteString(fmt.Sprintf("%v", _m.PromoCodeID))
  158. builder.WriteString(", ")
  159. builder.WriteString("user_id=")
  160. builder.WriteString(fmt.Sprintf("%v", _m.UserID))
  161. builder.WriteString(", ")
  162. builder.WriteString("bonus_amount=")
  163. builder.WriteString(fmt.Sprintf("%v", _m.BonusAmount))
  164. builder.WriteString(", ")
  165. builder.WriteString("used_at=")
  166. builder.WriteString(_m.UsedAt.Format(time.ANSIC))
  167. builder.WriteByte(')')
  168. return builder.String()
  169. }
  170. // PromoCodeUsages is a parsable slice of PromoCodeUsage.
  171. type PromoCodeUsages []*PromoCodeUsage