fix: some api bug

This commit is contained in:
wwweww
2026-03-31 22:12:06 +08:00
parent c5ff4f0216
commit e7970ac25f
219 changed files with 16195 additions and 2126 deletions
+48 -1
View File
@@ -1,6 +1,9 @@
package schema
import (
"database/sql/driver"
"errors"
"strings"
"time"
"entgo.io/ent"
@@ -8,11 +11,53 @@ import (
"entgo.io/ent/dialect/entsql"
"entgo.io/ent/schema"
"entgo.io/ent/schema/field"
"github.com/jackc/pgx/v5/pgtype"
"github.com/shopspring/decimal"
)
var shopDefaultRating = decimal.RequireFromString("5.00")
type TextArray pgtype.Array[string]
func (s *TextArray) Scan(src any) error {
if src == nil {
s.Elements = []string{}
s.Dims = nil
s.Valid = true
return nil
}
var strSrc string
switch v := src.(type) {
case string:
strSrc = v
case []byte:
strSrc = string(v)
default:
return errors.New("failed to scan text array")
}
trimmed := strings.Trim(strSrc, "{}")
if len(trimmed) == 0 {
s.Elements = []string{}
s.Dims = nil
s.Valid = true
return nil
}
s.Elements = strings.Split(trimmed, ",")
s.Dims = nil
s.Valid = true
return nil
}
func (s TextArray) Value() (driver.Value, error) {
if s.Elements == nil {
return []string{}, nil
}
return s.Elements, nil
}
// Shops holds the schema definition for the Shops entity.
type Shops struct {
ent.Schema
@@ -56,7 +101,9 @@ func (Shops) Fields() []ent.Field {
field.Bool("allow_multi_shop").Optional().Default(false),
field.Bool("allow_independent_orders").Optional().Default(true),
field.String("dispatch_mode").MaxLen(20).Default("manual"),
field.Strings("announcements").Optional().Default([]string{}),
field.Other("announcements", TextArray{}).
SchemaType(map[string]string{dialect.Postgres: "text[]"}).
Optional(),
field.JSON("template_config", map[string]any{}).Optional(),
field.Time("created_at").Default(time.Now).Immutable(),
field.Time("updated_at").Default(time.Now).UpdateDefault(time.Now),