feat: snapshot payment provider keys on orders

This commit is contained in:
IanShaw027
2026-04-20 20:47:14 +08:00
parent e3f69e0246
commit c0b24aefba
14 changed files with 400 additions and 24 deletions

View File

@@ -385,6 +385,26 @@ func (_u *PaymentOrderUpdate) ClearProviderInstanceID() *PaymentOrderUpdate {
return _u
}
// SetProviderKey sets the "provider_key" field.
func (_u *PaymentOrderUpdate) SetProviderKey(v string) *PaymentOrderUpdate {
_u.mutation.SetProviderKey(v)
return _u
}
// SetNillableProviderKey sets the "provider_key" field if the given value is not nil.
func (_u *PaymentOrderUpdate) SetNillableProviderKey(v *string) *PaymentOrderUpdate {
if v != nil {
_u.SetProviderKey(*v)
}
return _u
}
// ClearProviderKey clears the value of the "provider_key" field.
func (_u *PaymentOrderUpdate) ClearProviderKey() *PaymentOrderUpdate {
_u.mutation.ClearProviderKey()
return _u
}
// SetStatus sets the "status" field.
func (_u *PaymentOrderUpdate) SetStatus(v string) *PaymentOrderUpdate {
_u.mutation.SetStatus(v)
@@ -776,6 +796,11 @@ func (_u *PaymentOrderUpdate) check() error {
return &ValidationError{Name: "provider_instance_id", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.provider_instance_id": %w`, err)}
}
}
if v, ok := _u.mutation.ProviderKey(); ok {
if err := paymentorder.ProviderKeyValidator(v); err != nil {
return &ValidationError{Name: "provider_key", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.provider_key": %w`, err)}
}
}
if v, ok := _u.mutation.Status(); ok {
if err := paymentorder.StatusValidator(v); err != nil {
return &ValidationError{Name: "status", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.status": %w`, err)}
@@ -910,6 +935,12 @@ func (_u *PaymentOrderUpdate) sqlSave(ctx context.Context) (_node int, err error
if _u.mutation.ProviderInstanceIDCleared() {
_spec.ClearField(paymentorder.FieldProviderInstanceID, field.TypeString)
}
if value, ok := _u.mutation.ProviderKey(); ok {
_spec.SetField(paymentorder.FieldProviderKey, field.TypeString, value)
}
if _u.mutation.ProviderKeyCleared() {
_spec.ClearField(paymentorder.FieldProviderKey, field.TypeString)
}
if value, ok := _u.mutation.Status(); ok {
_spec.SetField(paymentorder.FieldStatus, field.TypeString, value)
}
@@ -1399,6 +1430,26 @@ func (_u *PaymentOrderUpdateOne) ClearProviderInstanceID() *PaymentOrderUpdateOn
return _u
}
// SetProviderKey sets the "provider_key" field.
func (_u *PaymentOrderUpdateOne) SetProviderKey(v string) *PaymentOrderUpdateOne {
_u.mutation.SetProviderKey(v)
return _u
}
// SetNillableProviderKey sets the "provider_key" field if the given value is not nil.
func (_u *PaymentOrderUpdateOne) SetNillableProviderKey(v *string) *PaymentOrderUpdateOne {
if v != nil {
_u.SetProviderKey(*v)
}
return _u
}
// ClearProviderKey clears the value of the "provider_key" field.
func (_u *PaymentOrderUpdateOne) ClearProviderKey() *PaymentOrderUpdateOne {
_u.mutation.ClearProviderKey()
return _u
}
// SetStatus sets the "status" field.
func (_u *PaymentOrderUpdateOne) SetStatus(v string) *PaymentOrderUpdateOne {
_u.mutation.SetStatus(v)
@@ -1803,6 +1854,11 @@ func (_u *PaymentOrderUpdateOne) check() error {
return &ValidationError{Name: "provider_instance_id", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.provider_instance_id": %w`, err)}
}
}
if v, ok := _u.mutation.ProviderKey(); ok {
if err := paymentorder.ProviderKeyValidator(v); err != nil {
return &ValidationError{Name: "provider_key", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.provider_key": %w`, err)}
}
}
if v, ok := _u.mutation.Status(); ok {
if err := paymentorder.StatusValidator(v); err != nil {
return &ValidationError{Name: "status", err: fmt.Errorf(`ent: validator failed for field "PaymentOrder.status": %w`, err)}
@@ -1954,6 +2010,12 @@ func (_u *PaymentOrderUpdateOne) sqlSave(ctx context.Context) (_node *PaymentOrd
if _u.mutation.ProviderInstanceIDCleared() {
_spec.ClearField(paymentorder.FieldProviderInstanceID, field.TypeString)
}
if value, ok := _u.mutation.ProviderKey(); ok {
_spec.SetField(paymentorder.FieldProviderKey, field.TypeString, value)
}
if _u.mutation.ProviderKeyCleared() {
_spec.ClearField(paymentorder.FieldProviderKey, field.TypeString)
}
if value, ok := _u.mutation.Status(); ok {
_spec.SetField(paymentorder.FieldStatus, field.TypeString, value)
}