feat: add OpenAI image generation controls

This commit is contained in:
2ue
2026-05-05 03:26:54 +08:00
parent 4de28fec8c
commit 6faa344916
85 changed files with 6086 additions and 568 deletions
+35 -2
View File
@@ -47,6 +47,12 @@ type Group struct {
MonthlyLimitUsd *float64 `json:"monthly_limit_usd,omitempty"`
// DefaultValidityDays holds the value of the "default_validity_days" field.
DefaultValidityDays int `json:"default_validity_days,omitempty"`
// 是否允许该分组使用图片生成能力
AllowImageGeneration bool `json:"allow_image_generation,omitempty"`
// 图片生成是否使用独立倍率;false 表示共享分组有效倍率
ImageRateIndependent bool `json:"image_rate_independent,omitempty"`
// 图片生成独立倍率,仅 image_rate_independent=true 时生效
ImageRateMultiplier float64 `json:"image_rate_multiplier,omitempty"`
// ImagePrice1k holds the value of the "image_price_1k" field.
ImagePrice1k *float64 `json:"image_price_1k,omitempty"`
// ImagePrice2k holds the value of the "image_price_2k" field.
@@ -189,9 +195,9 @@ func (*Group) scanValues(columns []string) ([]any, error) {
switch columns[i] {
case group.FieldModelRouting, group.FieldSupportedModelScopes, group.FieldMessagesDispatchModelConfig:
values[i] = new([]byte)
case group.FieldIsExclusive, group.FieldClaudeCodeOnly, group.FieldModelRoutingEnabled, group.FieldMcpXMLInject, group.FieldAllowMessagesDispatch, group.FieldRequireOauthOnly, group.FieldRequirePrivacySet:
case group.FieldIsExclusive, group.FieldAllowImageGeneration, group.FieldImageRateIndependent, group.FieldClaudeCodeOnly, group.FieldModelRoutingEnabled, group.FieldMcpXMLInject, group.FieldAllowMessagesDispatch, group.FieldRequireOauthOnly, group.FieldRequirePrivacySet:
values[i] = new(sql.NullBool)
case group.FieldRateMultiplier, group.FieldDailyLimitUsd, group.FieldWeeklyLimitUsd, group.FieldMonthlyLimitUsd, group.FieldImagePrice1k, group.FieldImagePrice2k, group.FieldImagePrice4k:
case group.FieldRateMultiplier, group.FieldDailyLimitUsd, group.FieldWeeklyLimitUsd, group.FieldMonthlyLimitUsd, group.FieldImageRateMultiplier, group.FieldImagePrice1k, group.FieldImagePrice2k, group.FieldImagePrice4k:
values[i] = new(sql.NullFloat64)
case group.FieldID, group.FieldDefaultValidityDays, group.FieldFallbackGroupID, group.FieldFallbackGroupIDOnInvalidRequest, group.FieldSortOrder, group.FieldRpmLimit:
values[i] = new(sql.NullInt64)
@@ -309,6 +315,24 @@ func (_m *Group) assignValues(columns []string, values []any) error {
} else if value.Valid {
_m.DefaultValidityDays = int(value.Int64)
}
case group.FieldAllowImageGeneration:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field allow_image_generation", values[i])
} else if value.Valid {
_m.AllowImageGeneration = value.Bool
}
case group.FieldImageRateIndependent:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field image_rate_independent", values[i])
} else if value.Valid {
_m.ImageRateIndependent = value.Bool
}
case group.FieldImageRateMultiplier:
if value, ok := values[i].(*sql.NullFloat64); !ok {
return fmt.Errorf("unexpected type %T for field image_rate_multiplier", values[i])
} else if value.Valid {
_m.ImageRateMultiplier = value.Float64
}
case group.FieldImagePrice1k:
if value, ok := values[i].(*sql.NullFloat64); !ok {
return fmt.Errorf("unexpected type %T for field image_price_1k", values[i])
@@ -550,6 +574,15 @@ func (_m *Group) String() string {
builder.WriteString("default_validity_days=")
builder.WriteString(fmt.Sprintf("%v", _m.DefaultValidityDays))
builder.WriteString(", ")
builder.WriteString("allow_image_generation=")
builder.WriteString(fmt.Sprintf("%v", _m.AllowImageGeneration))
builder.WriteString(", ")
builder.WriteString("image_rate_independent=")
builder.WriteString(fmt.Sprintf("%v", _m.ImageRateIndependent))
builder.WriteString(", ")
builder.WriteString("image_rate_multiplier=")
builder.WriteString(fmt.Sprintf("%v", _m.ImageRateMultiplier))
builder.WriteString(", ")
if v := _m.ImagePrice1k; v != nil {
builder.WriteString("image_price_1k=")
builder.WriteString(fmt.Sprintf("%v", *v))
+30
View File
@@ -44,6 +44,12 @@ const (
FieldMonthlyLimitUsd = "monthly_limit_usd"
// FieldDefaultValidityDays holds the string denoting the default_validity_days field in the database.
FieldDefaultValidityDays = "default_validity_days"
// FieldAllowImageGeneration holds the string denoting the allow_image_generation field in the database.
FieldAllowImageGeneration = "allow_image_generation"
// FieldImageRateIndependent holds the string denoting the image_rate_independent field in the database.
FieldImageRateIndependent = "image_rate_independent"
// FieldImageRateMultiplier holds the string denoting the image_rate_multiplier field in the database.
FieldImageRateMultiplier = "image_rate_multiplier"
// FieldImagePrice1k holds the string denoting the image_price_1k field in the database.
FieldImagePrice1k = "image_price_1k"
// FieldImagePrice2k holds the string denoting the image_price_2k field in the database.
@@ -167,6 +173,9 @@ var Columns = []string{
FieldWeeklyLimitUsd,
FieldMonthlyLimitUsd,
FieldDefaultValidityDays,
FieldAllowImageGeneration,
FieldImageRateIndependent,
FieldImageRateMultiplier,
FieldImagePrice1k,
FieldImagePrice2k,
FieldImagePrice4k,
@@ -239,6 +248,12 @@ var (
SubscriptionTypeValidator func(string) error
// DefaultDefaultValidityDays holds the default value on creation for the "default_validity_days" field.
DefaultDefaultValidityDays int
// DefaultAllowImageGeneration holds the default value on creation for the "allow_image_generation" field.
DefaultAllowImageGeneration bool
// DefaultImageRateIndependent holds the default value on creation for the "image_rate_independent" field.
DefaultImageRateIndependent bool
// DefaultImageRateMultiplier holds the default value on creation for the "image_rate_multiplier" field.
DefaultImageRateMultiplier float64
// DefaultClaudeCodeOnly holds the default value on creation for the "claude_code_only" field.
DefaultClaudeCodeOnly bool
// DefaultModelRoutingEnabled holds the default value on creation for the "model_routing_enabled" field.
@@ -343,6 +358,21 @@ func ByDefaultValidityDays(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldDefaultValidityDays, opts...).ToFunc()
}
// ByAllowImageGeneration orders the results by the allow_image_generation field.
func ByAllowImageGeneration(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldAllowImageGeneration, opts...).ToFunc()
}
// ByImageRateIndependent orders the results by the image_rate_independent field.
func ByImageRateIndependent(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldImageRateIndependent, opts...).ToFunc()
}
// ByImageRateMultiplier orders the results by the image_rate_multiplier field.
func ByImageRateMultiplier(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldImageRateMultiplier, opts...).ToFunc()
}
// ByImagePrice1k orders the results by the image_price_1k field.
func ByImagePrice1k(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldImagePrice1k, opts...).ToFunc()
+75
View File
@@ -125,6 +125,21 @@ func DefaultValidityDays(v int) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldDefaultValidityDays, v))
}
// AllowImageGeneration applies equality check predicate on the "allow_image_generation" field. It's identical to AllowImageGenerationEQ.
func AllowImageGeneration(v bool) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldAllowImageGeneration, v))
}
// ImageRateIndependent applies equality check predicate on the "image_rate_independent" field. It's identical to ImageRateIndependentEQ.
func ImageRateIndependent(v bool) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImageRateIndependent, v))
}
// ImageRateMultiplier applies equality check predicate on the "image_rate_multiplier" field. It's identical to ImageRateMultiplierEQ.
func ImageRateMultiplier(v float64) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImageRateMultiplier, v))
}
// ImagePrice1k applies equality check predicate on the "image_price_1k" field. It's identical to ImagePrice1kEQ.
func ImagePrice1k(v float64) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImagePrice1k, v))
@@ -900,6 +915,66 @@ func DefaultValidityDaysLTE(v int) predicate.Group {
return predicate.Group(sql.FieldLTE(FieldDefaultValidityDays, v))
}
// AllowImageGenerationEQ applies the EQ predicate on the "allow_image_generation" field.
func AllowImageGenerationEQ(v bool) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldAllowImageGeneration, v))
}
// AllowImageGenerationNEQ applies the NEQ predicate on the "allow_image_generation" field.
func AllowImageGenerationNEQ(v bool) predicate.Group {
return predicate.Group(sql.FieldNEQ(FieldAllowImageGeneration, v))
}
// ImageRateIndependentEQ applies the EQ predicate on the "image_rate_independent" field.
func ImageRateIndependentEQ(v bool) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImageRateIndependent, v))
}
// ImageRateIndependentNEQ applies the NEQ predicate on the "image_rate_independent" field.
func ImageRateIndependentNEQ(v bool) predicate.Group {
return predicate.Group(sql.FieldNEQ(FieldImageRateIndependent, v))
}
// ImageRateMultiplierEQ applies the EQ predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierEQ(v float64) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImageRateMultiplier, v))
}
// ImageRateMultiplierNEQ applies the NEQ predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierNEQ(v float64) predicate.Group {
return predicate.Group(sql.FieldNEQ(FieldImageRateMultiplier, v))
}
// ImageRateMultiplierIn applies the In predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierIn(vs ...float64) predicate.Group {
return predicate.Group(sql.FieldIn(FieldImageRateMultiplier, vs...))
}
// ImageRateMultiplierNotIn applies the NotIn predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierNotIn(vs ...float64) predicate.Group {
return predicate.Group(sql.FieldNotIn(FieldImageRateMultiplier, vs...))
}
// ImageRateMultiplierGT applies the GT predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierGT(v float64) predicate.Group {
return predicate.Group(sql.FieldGT(FieldImageRateMultiplier, v))
}
// ImageRateMultiplierGTE applies the GTE predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierGTE(v float64) predicate.Group {
return predicate.Group(sql.FieldGTE(FieldImageRateMultiplier, v))
}
// ImageRateMultiplierLT applies the LT predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierLT(v float64) predicate.Group {
return predicate.Group(sql.FieldLT(FieldImageRateMultiplier, v))
}
// ImageRateMultiplierLTE applies the LTE predicate on the "image_rate_multiplier" field.
func ImageRateMultiplierLTE(v float64) predicate.Group {
return predicate.Group(sql.FieldLTE(FieldImageRateMultiplier, v))
}
// ImagePrice1kEQ applies the EQ predicate on the "image_price_1k" field.
func ImagePrice1kEQ(v float64) predicate.Group {
return predicate.Group(sql.FieldEQ(FieldImagePrice1k, v))
+215
View File
@@ -217,6 +217,48 @@ func (_c *GroupCreate) SetNillableDefaultValidityDays(v *int) *GroupCreate {
return _c
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (_c *GroupCreate) SetAllowImageGeneration(v bool) *GroupCreate {
_c.mutation.SetAllowImageGeneration(v)
return _c
}
// SetNillableAllowImageGeneration sets the "allow_image_generation" field if the given value is not nil.
func (_c *GroupCreate) SetNillableAllowImageGeneration(v *bool) *GroupCreate {
if v != nil {
_c.SetAllowImageGeneration(*v)
}
return _c
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (_c *GroupCreate) SetImageRateIndependent(v bool) *GroupCreate {
_c.mutation.SetImageRateIndependent(v)
return _c
}
// SetNillableImageRateIndependent sets the "image_rate_independent" field if the given value is not nil.
func (_c *GroupCreate) SetNillableImageRateIndependent(v *bool) *GroupCreate {
if v != nil {
_c.SetImageRateIndependent(*v)
}
return _c
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (_c *GroupCreate) SetImageRateMultiplier(v float64) *GroupCreate {
_c.mutation.SetImageRateMultiplier(v)
return _c
}
// SetNillableImageRateMultiplier sets the "image_rate_multiplier" field if the given value is not nil.
func (_c *GroupCreate) SetNillableImageRateMultiplier(v *float64) *GroupCreate {
if v != nil {
_c.SetImageRateMultiplier(*v)
}
return _c
}
// SetImagePrice1k sets the "image_price_1k" field.
func (_c *GroupCreate) SetImagePrice1k(v float64) *GroupCreate {
_c.mutation.SetImagePrice1k(v)
@@ -604,6 +646,18 @@ func (_c *GroupCreate) defaults() error {
v := group.DefaultDefaultValidityDays
_c.mutation.SetDefaultValidityDays(v)
}
if _, ok := _c.mutation.AllowImageGeneration(); !ok {
v := group.DefaultAllowImageGeneration
_c.mutation.SetAllowImageGeneration(v)
}
if _, ok := _c.mutation.ImageRateIndependent(); !ok {
v := group.DefaultImageRateIndependent
_c.mutation.SetImageRateIndependent(v)
}
if _, ok := _c.mutation.ImageRateMultiplier(); !ok {
v := group.DefaultImageRateMultiplier
_c.mutation.SetImageRateMultiplier(v)
}
if _, ok := _c.mutation.ClaudeCodeOnly(); !ok {
v := group.DefaultClaudeCodeOnly
_c.mutation.SetClaudeCodeOnly(v)
@@ -700,6 +754,15 @@ func (_c *GroupCreate) check() error {
if _, ok := _c.mutation.DefaultValidityDays(); !ok {
return &ValidationError{Name: "default_validity_days", err: errors.New(`ent: missing required field "Group.default_validity_days"`)}
}
if _, ok := _c.mutation.AllowImageGeneration(); !ok {
return &ValidationError{Name: "allow_image_generation", err: errors.New(`ent: missing required field "Group.allow_image_generation"`)}
}
if _, ok := _c.mutation.ImageRateIndependent(); !ok {
return &ValidationError{Name: "image_rate_independent", err: errors.New(`ent: missing required field "Group.image_rate_independent"`)}
}
if _, ok := _c.mutation.ImageRateMultiplier(); !ok {
return &ValidationError{Name: "image_rate_multiplier", err: errors.New(`ent: missing required field "Group.image_rate_multiplier"`)}
}
if _, ok := _c.mutation.ClaudeCodeOnly(); !ok {
return &ValidationError{Name: "claude_code_only", err: errors.New(`ent: missing required field "Group.claude_code_only"`)}
}
@@ -821,6 +884,18 @@ func (_c *GroupCreate) createSpec() (*Group, *sqlgraph.CreateSpec) {
_spec.SetField(group.FieldDefaultValidityDays, field.TypeInt, value)
_node.DefaultValidityDays = value
}
if value, ok := _c.mutation.AllowImageGeneration(); ok {
_spec.SetField(group.FieldAllowImageGeneration, field.TypeBool, value)
_node.AllowImageGeneration = value
}
if value, ok := _c.mutation.ImageRateIndependent(); ok {
_spec.SetField(group.FieldImageRateIndependent, field.TypeBool, value)
_node.ImageRateIndependent = value
}
if value, ok := _c.mutation.ImageRateMultiplier(); ok {
_spec.SetField(group.FieldImageRateMultiplier, field.TypeFloat64, value)
_node.ImageRateMultiplier = value
}
if value, ok := _c.mutation.ImagePrice1k(); ok {
_spec.SetField(group.FieldImagePrice1k, field.TypeFloat64, value)
_node.ImagePrice1k = &value
@@ -1261,6 +1336,48 @@ func (u *GroupUpsert) AddDefaultValidityDays(v int) *GroupUpsert {
return u
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (u *GroupUpsert) SetAllowImageGeneration(v bool) *GroupUpsert {
u.Set(group.FieldAllowImageGeneration, v)
return u
}
// UpdateAllowImageGeneration sets the "allow_image_generation" field to the value that was provided on create.
func (u *GroupUpsert) UpdateAllowImageGeneration() *GroupUpsert {
u.SetExcluded(group.FieldAllowImageGeneration)
return u
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (u *GroupUpsert) SetImageRateIndependent(v bool) *GroupUpsert {
u.Set(group.FieldImageRateIndependent, v)
return u
}
// UpdateImageRateIndependent sets the "image_rate_independent" field to the value that was provided on create.
func (u *GroupUpsert) UpdateImageRateIndependent() *GroupUpsert {
u.SetExcluded(group.FieldImageRateIndependent)
return u
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (u *GroupUpsert) SetImageRateMultiplier(v float64) *GroupUpsert {
u.Set(group.FieldImageRateMultiplier, v)
return u
}
// UpdateImageRateMultiplier sets the "image_rate_multiplier" field to the value that was provided on create.
func (u *GroupUpsert) UpdateImageRateMultiplier() *GroupUpsert {
u.SetExcluded(group.FieldImageRateMultiplier)
return u
}
// AddImageRateMultiplier adds v to the "image_rate_multiplier" field.
func (u *GroupUpsert) AddImageRateMultiplier(v float64) *GroupUpsert {
u.Add(group.FieldImageRateMultiplier, v)
return u
}
// SetImagePrice1k sets the "image_price_1k" field.
func (u *GroupUpsert) SetImagePrice1k(v float64) *GroupUpsert {
u.Set(group.FieldImagePrice1k, v)
@@ -1840,6 +1957,55 @@ func (u *GroupUpsertOne) UpdateDefaultValidityDays() *GroupUpsertOne {
})
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (u *GroupUpsertOne) SetAllowImageGeneration(v bool) *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.SetAllowImageGeneration(v)
})
}
// UpdateAllowImageGeneration sets the "allow_image_generation" field to the value that was provided on create.
func (u *GroupUpsertOne) UpdateAllowImageGeneration() *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.UpdateAllowImageGeneration()
})
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (u *GroupUpsertOne) SetImageRateIndependent(v bool) *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.SetImageRateIndependent(v)
})
}
// UpdateImageRateIndependent sets the "image_rate_independent" field to the value that was provided on create.
func (u *GroupUpsertOne) UpdateImageRateIndependent() *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.UpdateImageRateIndependent()
})
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (u *GroupUpsertOne) SetImageRateMultiplier(v float64) *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.SetImageRateMultiplier(v)
})
}
// AddImageRateMultiplier adds v to the "image_rate_multiplier" field.
func (u *GroupUpsertOne) AddImageRateMultiplier(v float64) *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.AddImageRateMultiplier(v)
})
}
// UpdateImageRateMultiplier sets the "image_rate_multiplier" field to the value that was provided on create.
func (u *GroupUpsertOne) UpdateImageRateMultiplier() *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
s.UpdateImageRateMultiplier()
})
}
// SetImagePrice1k sets the "image_price_1k" field.
func (u *GroupUpsertOne) SetImagePrice1k(v float64) *GroupUpsertOne {
return u.Update(func(s *GroupUpsert) {
@@ -2632,6 +2798,55 @@ func (u *GroupUpsertBulk) UpdateDefaultValidityDays() *GroupUpsertBulk {
})
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (u *GroupUpsertBulk) SetAllowImageGeneration(v bool) *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.SetAllowImageGeneration(v)
})
}
// UpdateAllowImageGeneration sets the "allow_image_generation" field to the value that was provided on create.
func (u *GroupUpsertBulk) UpdateAllowImageGeneration() *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.UpdateAllowImageGeneration()
})
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (u *GroupUpsertBulk) SetImageRateIndependent(v bool) *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.SetImageRateIndependent(v)
})
}
// UpdateImageRateIndependent sets the "image_rate_independent" field to the value that was provided on create.
func (u *GroupUpsertBulk) UpdateImageRateIndependent() *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.UpdateImageRateIndependent()
})
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (u *GroupUpsertBulk) SetImageRateMultiplier(v float64) *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.SetImageRateMultiplier(v)
})
}
// AddImageRateMultiplier adds v to the "image_rate_multiplier" field.
func (u *GroupUpsertBulk) AddImageRateMultiplier(v float64) *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.AddImageRateMultiplier(v)
})
}
// UpdateImageRateMultiplier sets the "image_rate_multiplier" field to the value that was provided on create.
func (u *GroupUpsertBulk) UpdateImageRateMultiplier() *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
s.UpdateImageRateMultiplier()
})
}
// SetImagePrice1k sets the "image_price_1k" field.
func (u *GroupUpsertBulk) SetImagePrice1k(v float64) *GroupUpsertBulk {
return u.Update(func(s *GroupUpsert) {
+122
View File
@@ -275,6 +275,55 @@ func (_u *GroupUpdate) AddDefaultValidityDays(v int) *GroupUpdate {
return _u
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (_u *GroupUpdate) SetAllowImageGeneration(v bool) *GroupUpdate {
_u.mutation.SetAllowImageGeneration(v)
return _u
}
// SetNillableAllowImageGeneration sets the "allow_image_generation" field if the given value is not nil.
func (_u *GroupUpdate) SetNillableAllowImageGeneration(v *bool) *GroupUpdate {
if v != nil {
_u.SetAllowImageGeneration(*v)
}
return _u
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (_u *GroupUpdate) SetImageRateIndependent(v bool) *GroupUpdate {
_u.mutation.SetImageRateIndependent(v)
return _u
}
// SetNillableImageRateIndependent sets the "image_rate_independent" field if the given value is not nil.
func (_u *GroupUpdate) SetNillableImageRateIndependent(v *bool) *GroupUpdate {
if v != nil {
_u.SetImageRateIndependent(*v)
}
return _u
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (_u *GroupUpdate) SetImageRateMultiplier(v float64) *GroupUpdate {
_u.mutation.ResetImageRateMultiplier()
_u.mutation.SetImageRateMultiplier(v)
return _u
}
// SetNillableImageRateMultiplier sets the "image_rate_multiplier" field if the given value is not nil.
func (_u *GroupUpdate) SetNillableImageRateMultiplier(v *float64) *GroupUpdate {
if v != nil {
_u.SetImageRateMultiplier(*v)
}
return _u
}
// AddImageRateMultiplier adds value to the "image_rate_multiplier" field.
func (_u *GroupUpdate) AddImageRateMultiplier(v float64) *GroupUpdate {
_u.mutation.AddImageRateMultiplier(v)
return _u
}
// SetImagePrice1k sets the "image_price_1k" field.
func (_u *GroupUpdate) SetImagePrice1k(v float64) *GroupUpdate {
_u.mutation.ResetImagePrice1k()
@@ -962,6 +1011,18 @@ func (_u *GroupUpdate) sqlSave(ctx context.Context) (_node int, err error) {
if value, ok := _u.mutation.AddedDefaultValidityDays(); ok {
_spec.AddField(group.FieldDefaultValidityDays, field.TypeInt, value)
}
if value, ok := _u.mutation.AllowImageGeneration(); ok {
_spec.SetField(group.FieldAllowImageGeneration, field.TypeBool, value)
}
if value, ok := _u.mutation.ImageRateIndependent(); ok {
_spec.SetField(group.FieldImageRateIndependent, field.TypeBool, value)
}
if value, ok := _u.mutation.ImageRateMultiplier(); ok {
_spec.SetField(group.FieldImageRateMultiplier, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedImageRateMultiplier(); ok {
_spec.AddField(group.FieldImageRateMultiplier, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ImagePrice1k(); ok {
_spec.SetField(group.FieldImagePrice1k, field.TypeFloat64, value)
}
@@ -1610,6 +1671,55 @@ func (_u *GroupUpdateOne) AddDefaultValidityDays(v int) *GroupUpdateOne {
return _u
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (_u *GroupUpdateOne) SetAllowImageGeneration(v bool) *GroupUpdateOne {
_u.mutation.SetAllowImageGeneration(v)
return _u
}
// SetNillableAllowImageGeneration sets the "allow_image_generation" field if the given value is not nil.
func (_u *GroupUpdateOne) SetNillableAllowImageGeneration(v *bool) *GroupUpdateOne {
if v != nil {
_u.SetAllowImageGeneration(*v)
}
return _u
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (_u *GroupUpdateOne) SetImageRateIndependent(v bool) *GroupUpdateOne {
_u.mutation.SetImageRateIndependent(v)
return _u
}
// SetNillableImageRateIndependent sets the "image_rate_independent" field if the given value is not nil.
func (_u *GroupUpdateOne) SetNillableImageRateIndependent(v *bool) *GroupUpdateOne {
if v != nil {
_u.SetImageRateIndependent(*v)
}
return _u
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (_u *GroupUpdateOne) SetImageRateMultiplier(v float64) *GroupUpdateOne {
_u.mutation.ResetImageRateMultiplier()
_u.mutation.SetImageRateMultiplier(v)
return _u
}
// SetNillableImageRateMultiplier sets the "image_rate_multiplier" field if the given value is not nil.
func (_u *GroupUpdateOne) SetNillableImageRateMultiplier(v *float64) *GroupUpdateOne {
if v != nil {
_u.SetImageRateMultiplier(*v)
}
return _u
}
// AddImageRateMultiplier adds value to the "image_rate_multiplier" field.
func (_u *GroupUpdateOne) AddImageRateMultiplier(v float64) *GroupUpdateOne {
_u.mutation.AddImageRateMultiplier(v)
return _u
}
// SetImagePrice1k sets the "image_price_1k" field.
func (_u *GroupUpdateOne) SetImagePrice1k(v float64) *GroupUpdateOne {
_u.mutation.ResetImagePrice1k()
@@ -2327,6 +2437,18 @@ func (_u *GroupUpdateOne) sqlSave(ctx context.Context) (_node *Group, err error)
if value, ok := _u.mutation.AddedDefaultValidityDays(); ok {
_spec.AddField(group.FieldDefaultValidityDays, field.TypeInt, value)
}
if value, ok := _u.mutation.AllowImageGeneration(); ok {
_spec.SetField(group.FieldAllowImageGeneration, field.TypeBool, value)
}
if value, ok := _u.mutation.ImageRateIndependent(); ok {
_spec.SetField(group.FieldImageRateIndependent, field.TypeBool, value)
}
if value, ok := _u.mutation.ImageRateMultiplier(); ok {
_spec.SetField(group.FieldImageRateMultiplier, field.TypeFloat64, value)
}
if value, ok := _u.mutation.AddedImageRateMultiplier(); ok {
_spec.AddField(group.FieldImageRateMultiplier, field.TypeFloat64, value)
}
if value, ok := _u.mutation.ImagePrice1k(); ok {
_spec.SetField(group.FieldImagePrice1k, field.TypeFloat64, value)
}
+4 -1
View File
@@ -638,6 +638,9 @@ var (
{Name: "weekly_limit_usd", Type: field.TypeFloat64, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(20,8)"}},
{Name: "monthly_limit_usd", Type: field.TypeFloat64, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(20,8)"}},
{Name: "default_validity_days", Type: field.TypeInt, Default: 30},
{Name: "allow_image_generation", Type: field.TypeBool, Default: false},
{Name: "image_rate_independent", Type: field.TypeBool, Default: false},
{Name: "image_rate_multiplier", Type: field.TypeFloat64, Default: 1, SchemaType: map[string]string{"postgres": "decimal(10,4)"}},
{Name: "image_price_1k", Type: field.TypeFloat64, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(20,8)"}},
{Name: "image_price_2k", Type: field.TypeFloat64, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(20,8)"}},
{Name: "image_price_4k", Type: field.TypeFloat64, Nullable: true, SchemaType: map[string]string{"postgres": "decimal(20,8)"}},
@@ -690,7 +693,7 @@ var (
{
Name: "group_sort_order",
Unique: false,
Columns: []*schema.Column{GroupsColumns[25]},
Columns: []*schema.Column{GroupsColumns[28]},
},
},
}
+196 -1
View File
@@ -14764,6 +14764,10 @@ type GroupMutation struct {
addmonthly_limit_usd *float64
default_validity_days *int
adddefault_validity_days *int
allow_image_generation *bool
image_rate_independent *bool
image_rate_multiplier *float64
addimage_rate_multiplier *float64
image_price_1k *float64
addimage_price_1k *float64
image_price_2k *float64
@@ -15583,6 +15587,134 @@ func (m *GroupMutation) ResetDefaultValidityDays() {
m.adddefault_validity_days = nil
}
// SetAllowImageGeneration sets the "allow_image_generation" field.
func (m *GroupMutation) SetAllowImageGeneration(b bool) {
m.allow_image_generation = &b
}
// AllowImageGeneration returns the value of the "allow_image_generation" field in the mutation.
func (m *GroupMutation) AllowImageGeneration() (r bool, exists bool) {
v := m.allow_image_generation
if v == nil {
return
}
return *v, true
}
// OldAllowImageGeneration returns the old "allow_image_generation" field's value of the Group entity.
// If the Group object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *GroupMutation) OldAllowImageGeneration(ctx context.Context) (v bool, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldAllowImageGeneration is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, errors.New("OldAllowImageGeneration requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldAllowImageGeneration: %w", err)
}
return oldValue.AllowImageGeneration, nil
}
// ResetAllowImageGeneration resets all changes to the "allow_image_generation" field.
func (m *GroupMutation) ResetAllowImageGeneration() {
m.allow_image_generation = nil
}
// SetImageRateIndependent sets the "image_rate_independent" field.
func (m *GroupMutation) SetImageRateIndependent(b bool) {
m.image_rate_independent = &b
}
// ImageRateIndependent returns the value of the "image_rate_independent" field in the mutation.
func (m *GroupMutation) ImageRateIndependent() (r bool, exists bool) {
v := m.image_rate_independent
if v == nil {
return
}
return *v, true
}
// OldImageRateIndependent returns the old "image_rate_independent" field's value of the Group entity.
// If the Group object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *GroupMutation) OldImageRateIndependent(ctx context.Context) (v bool, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldImageRateIndependent is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, errors.New("OldImageRateIndependent requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldImageRateIndependent: %w", err)
}
return oldValue.ImageRateIndependent, nil
}
// ResetImageRateIndependent resets all changes to the "image_rate_independent" field.
func (m *GroupMutation) ResetImageRateIndependent() {
m.image_rate_independent = nil
}
// SetImageRateMultiplier sets the "image_rate_multiplier" field.
func (m *GroupMutation) SetImageRateMultiplier(f float64) {
m.image_rate_multiplier = &f
m.addimage_rate_multiplier = nil
}
// ImageRateMultiplier returns the value of the "image_rate_multiplier" field in the mutation.
func (m *GroupMutation) ImageRateMultiplier() (r float64, exists bool) {
v := m.image_rate_multiplier
if v == nil {
return
}
return *v, true
}
// OldImageRateMultiplier returns the old "image_rate_multiplier" field's value of the Group entity.
// If the Group object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *GroupMutation) OldImageRateMultiplier(ctx context.Context) (v float64, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldImageRateMultiplier is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, errors.New("OldImageRateMultiplier requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldImageRateMultiplier: %w", err)
}
return oldValue.ImageRateMultiplier, nil
}
// AddImageRateMultiplier adds f to the "image_rate_multiplier" field.
func (m *GroupMutation) AddImageRateMultiplier(f float64) {
if m.addimage_rate_multiplier != nil {
*m.addimage_rate_multiplier += f
} else {
m.addimage_rate_multiplier = &f
}
}
// AddedImageRateMultiplier returns the value that was added to the "image_rate_multiplier" field in this mutation.
func (m *GroupMutation) AddedImageRateMultiplier() (r float64, exists bool) {
v := m.addimage_rate_multiplier
if v == nil {
return
}
return *v, true
}
// ResetImageRateMultiplier resets all changes to the "image_rate_multiplier" field.
func (m *GroupMutation) ResetImageRateMultiplier() {
m.image_rate_multiplier = nil
m.addimage_rate_multiplier = nil
}
// SetImagePrice1k sets the "image_price_1k" field.
func (m *GroupMutation) SetImagePrice1k(f float64) {
m.image_price_1k = &f
@@ -16791,7 +16923,7 @@ func (m *GroupMutation) Type() string {
// order to get all numeric fields that were incremented/decremented, call
// AddedFields().
func (m *GroupMutation) Fields() []string {
fields := make([]string, 0, 31)
fields := make([]string, 0, 34)
if m.created_at != nil {
fields = append(fields, group.FieldCreatedAt)
}
@@ -16834,6 +16966,15 @@ func (m *GroupMutation) Fields() []string {
if m.default_validity_days != nil {
fields = append(fields, group.FieldDefaultValidityDays)
}
if m.allow_image_generation != nil {
fields = append(fields, group.FieldAllowImageGeneration)
}
if m.image_rate_independent != nil {
fields = append(fields, group.FieldImageRateIndependent)
}
if m.image_rate_multiplier != nil {
fields = append(fields, group.FieldImageRateMultiplier)
}
if m.image_price_1k != nil {
fields = append(fields, group.FieldImagePrice1k)
}
@@ -16921,6 +17062,12 @@ func (m *GroupMutation) Field(name string) (ent.Value, bool) {
return m.MonthlyLimitUsd()
case group.FieldDefaultValidityDays:
return m.DefaultValidityDays()
case group.FieldAllowImageGeneration:
return m.AllowImageGeneration()
case group.FieldImageRateIndependent:
return m.ImageRateIndependent()
case group.FieldImageRateMultiplier:
return m.ImageRateMultiplier()
case group.FieldImagePrice1k:
return m.ImagePrice1k()
case group.FieldImagePrice2k:
@@ -16992,6 +17139,12 @@ func (m *GroupMutation) OldField(ctx context.Context, name string) (ent.Value, e
return m.OldMonthlyLimitUsd(ctx)
case group.FieldDefaultValidityDays:
return m.OldDefaultValidityDays(ctx)
case group.FieldAllowImageGeneration:
return m.OldAllowImageGeneration(ctx)
case group.FieldImageRateIndependent:
return m.OldImageRateIndependent(ctx)
case group.FieldImageRateMultiplier:
return m.OldImageRateMultiplier(ctx)
case group.FieldImagePrice1k:
return m.OldImagePrice1k(ctx)
case group.FieldImagePrice2k:
@@ -17133,6 +17286,27 @@ func (m *GroupMutation) SetField(name string, value ent.Value) error {
}
m.SetDefaultValidityDays(v)
return nil
case group.FieldAllowImageGeneration:
v, ok := value.(bool)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetAllowImageGeneration(v)
return nil
case group.FieldImageRateIndependent:
v, ok := value.(bool)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetImageRateIndependent(v)
return nil
case group.FieldImageRateMultiplier:
v, ok := value.(float64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetImageRateMultiplier(v)
return nil
case group.FieldImagePrice1k:
v, ok := value.(float64)
if !ok {
@@ -17275,6 +17449,9 @@ func (m *GroupMutation) AddedFields() []string {
if m.adddefault_validity_days != nil {
fields = append(fields, group.FieldDefaultValidityDays)
}
if m.addimage_rate_multiplier != nil {
fields = append(fields, group.FieldImageRateMultiplier)
}
if m.addimage_price_1k != nil {
fields = append(fields, group.FieldImagePrice1k)
}
@@ -17314,6 +17491,8 @@ func (m *GroupMutation) AddedField(name string) (ent.Value, bool) {
return m.AddedMonthlyLimitUsd()
case group.FieldDefaultValidityDays:
return m.AddedDefaultValidityDays()
case group.FieldImageRateMultiplier:
return m.AddedImageRateMultiplier()
case group.FieldImagePrice1k:
return m.AddedImagePrice1k()
case group.FieldImagePrice2k:
@@ -17372,6 +17551,13 @@ func (m *GroupMutation) AddField(name string, value ent.Value) error {
}
m.AddDefaultValidityDays(v)
return nil
case group.FieldImageRateMultiplier:
v, ok := value.(float64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.AddImageRateMultiplier(v)
return nil
case group.FieldImagePrice1k:
v, ok := value.(float64)
if !ok {
@@ -17559,6 +17745,15 @@ func (m *GroupMutation) ResetField(name string) error {
case group.FieldDefaultValidityDays:
m.ResetDefaultValidityDays()
return nil
case group.FieldAllowImageGeneration:
m.ResetAllowImageGeneration()
return nil
case group.FieldImageRateIndependent:
m.ResetImageRateIndependent()
return nil
case group.FieldImageRateMultiplier:
m.ResetImageRateMultiplier()
return nil
case group.FieldImagePrice1k:
m.ResetImagePrice1k()
return nil
+23 -11
View File
@@ -803,50 +803,62 @@ func init() {
groupDescDefaultValidityDays := groupFields[10].Descriptor()
// group.DefaultDefaultValidityDays holds the default value on creation for the default_validity_days field.
group.DefaultDefaultValidityDays = groupDescDefaultValidityDays.Default.(int)
// groupDescAllowImageGeneration is the schema descriptor for allow_image_generation field.
groupDescAllowImageGeneration := groupFields[11].Descriptor()
// group.DefaultAllowImageGeneration holds the default value on creation for the allow_image_generation field.
group.DefaultAllowImageGeneration = groupDescAllowImageGeneration.Default.(bool)
// groupDescImageRateIndependent is the schema descriptor for image_rate_independent field.
groupDescImageRateIndependent := groupFields[12].Descriptor()
// group.DefaultImageRateIndependent holds the default value on creation for the image_rate_independent field.
group.DefaultImageRateIndependent = groupDescImageRateIndependent.Default.(bool)
// groupDescImageRateMultiplier is the schema descriptor for image_rate_multiplier field.
groupDescImageRateMultiplier := groupFields[13].Descriptor()
// group.DefaultImageRateMultiplier holds the default value on creation for the image_rate_multiplier field.
group.DefaultImageRateMultiplier = groupDescImageRateMultiplier.Default.(float64)
// groupDescClaudeCodeOnly is the schema descriptor for claude_code_only field.
groupDescClaudeCodeOnly := groupFields[14].Descriptor()
groupDescClaudeCodeOnly := groupFields[17].Descriptor()
// group.DefaultClaudeCodeOnly holds the default value on creation for the claude_code_only field.
group.DefaultClaudeCodeOnly = groupDescClaudeCodeOnly.Default.(bool)
// groupDescModelRoutingEnabled is the schema descriptor for model_routing_enabled field.
groupDescModelRoutingEnabled := groupFields[18].Descriptor()
groupDescModelRoutingEnabled := groupFields[21].Descriptor()
// group.DefaultModelRoutingEnabled holds the default value on creation for the model_routing_enabled field.
group.DefaultModelRoutingEnabled = groupDescModelRoutingEnabled.Default.(bool)
// groupDescMcpXMLInject is the schema descriptor for mcp_xml_inject field.
groupDescMcpXMLInject := groupFields[19].Descriptor()
groupDescMcpXMLInject := groupFields[22].Descriptor()
// group.DefaultMcpXMLInject holds the default value on creation for the mcp_xml_inject field.
group.DefaultMcpXMLInject = groupDescMcpXMLInject.Default.(bool)
// groupDescSupportedModelScopes is the schema descriptor for supported_model_scopes field.
groupDescSupportedModelScopes := groupFields[20].Descriptor()
groupDescSupportedModelScopes := groupFields[23].Descriptor()
// group.DefaultSupportedModelScopes holds the default value on creation for the supported_model_scopes field.
group.DefaultSupportedModelScopes = groupDescSupportedModelScopes.Default.([]string)
// groupDescSortOrder is the schema descriptor for sort_order field.
groupDescSortOrder := groupFields[21].Descriptor()
groupDescSortOrder := groupFields[24].Descriptor()
// group.DefaultSortOrder holds the default value on creation for the sort_order field.
group.DefaultSortOrder = groupDescSortOrder.Default.(int)
// groupDescAllowMessagesDispatch is the schema descriptor for allow_messages_dispatch field.
groupDescAllowMessagesDispatch := groupFields[22].Descriptor()
groupDescAllowMessagesDispatch := groupFields[25].Descriptor()
// group.DefaultAllowMessagesDispatch holds the default value on creation for the allow_messages_dispatch field.
group.DefaultAllowMessagesDispatch = groupDescAllowMessagesDispatch.Default.(bool)
// groupDescRequireOauthOnly is the schema descriptor for require_oauth_only field.
groupDescRequireOauthOnly := groupFields[23].Descriptor()
groupDescRequireOauthOnly := groupFields[26].Descriptor()
// group.DefaultRequireOauthOnly holds the default value on creation for the require_oauth_only field.
group.DefaultRequireOauthOnly = groupDescRequireOauthOnly.Default.(bool)
// groupDescRequirePrivacySet is the schema descriptor for require_privacy_set field.
groupDescRequirePrivacySet := groupFields[24].Descriptor()
groupDescRequirePrivacySet := groupFields[27].Descriptor()
// group.DefaultRequirePrivacySet holds the default value on creation for the require_privacy_set field.
group.DefaultRequirePrivacySet = groupDescRequirePrivacySet.Default.(bool)
// groupDescDefaultMappedModel is the schema descriptor for default_mapped_model field.
groupDescDefaultMappedModel := groupFields[25].Descriptor()
groupDescDefaultMappedModel := groupFields[28].Descriptor()
// group.DefaultDefaultMappedModel holds the default value on creation for the default_mapped_model field.
group.DefaultDefaultMappedModel = groupDescDefaultMappedModel.Default.(string)
// group.DefaultMappedModelValidator is a validator for the "default_mapped_model" field. It is called by the builders before save.
group.DefaultMappedModelValidator = groupDescDefaultMappedModel.Validators[0].(func(string) error)
// groupDescMessagesDispatchModelConfig is the schema descriptor for messages_dispatch_model_config field.
groupDescMessagesDispatchModelConfig := groupFields[26].Descriptor()
groupDescMessagesDispatchModelConfig := groupFields[29].Descriptor()
// group.DefaultMessagesDispatchModelConfig holds the default value on creation for the messages_dispatch_model_config field.
group.DefaultMessagesDispatchModelConfig = groupDescMessagesDispatchModelConfig.Default.(domain.OpenAIMessagesDispatchModelConfig)
// groupDescRpmLimit is the schema descriptor for rpm_limit field.
groupDescRpmLimit := groupFields[27].Descriptor()
groupDescRpmLimit := groupFields[30].Descriptor()
// group.DefaultRpmLimit holds the default value on creation for the rpm_limit field.
group.DefaultRpmLimit = groupDescRpmLimit.Default.(int)
idempotencyrecordMixin := schema.IdempotencyRecord{}.Mixin()
+10
View File
@@ -74,6 +74,16 @@ func (Group) Fields() []ent.Field {
Default(30),
// 图片生成计费配置(antigravity 和 gemini 平台使用)
field.Bool("allow_image_generation").
Default(false).
Comment("是否允许该分组使用图片生成能力"),
field.Bool("image_rate_independent").
Default(false).
Comment("图片生成是否使用独立倍率;false 表示共享分组有效倍率"),
field.Float("image_rate_multiplier").
SchemaType(map[string]string{dialect.Postgres: "decimal(10,4)"}).
Default(1.0).
Comment("图片生成独立倍率,仅 image_rate_independent=true 时生效"),
field.Float("image_price_1k").
Optional().
Nillable().