package schema import ( "entgo.io/ent" "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" "github.com/saas-mingyang/mingyang-admin-common/orm/ent/mixins" mixins2 "mingyang-admin-pay/rpc/ent/schema/mixins" ) type PayChannel struct { ent.Schema } // Fields of the PayChannel. func (PayChannel) Fields() []ent.Field { return []ent.Field{ field.String("code").Comment("Pay channel code | 支付渠道编码"), field.String("name_en").Comment("Pay channel name | 支付渠道英文名称"), field.String("name_zh").Comment("Pay channel name | 支付渠道中文名称"), field.String("free_rate").Comment("Free rate | 手续费比例").Default("0"), field.Uint64("app_id").Comment("App ID | 应用ID"), field.JSON("config", map[string]interface{}{}).Comment("Config | 配置信息"), field.String("remake").Optional().Comment("Remark | 备注"), field.Uint64("icon").Optional().Comment("Icon | 图标"), field.String("order_time_out").Comment("Order time out | 订单超时时间").Default("10m"), field.String("support_currency").Comment("Support currency | 支持币种").Default("CNY,USD"), } } func (PayChannel) Mixin() []ent.Mixin { return []ent.Mixin{ mixins.IDMixin{}, mixins.StatusMixin{}, mixins.TenantMixin{}, mixins2.SoftDeleteMixin{}, } } func (PayChannel) Indexes() []ent.Index { return []ent.Index{ index.Fields("app_id", "code").Unique(), } } func (PayChannel) Edges() []ent.Edge { return []ent.Edge{ // 使用 edge.From 而不是 edge.To edge.From("orders", PayOrder.Type). Ref("channel"), edge.From("orders_extension", PayOrderExtension.Type). Ref("channel"), edge.From("refund", PayRefund.Type). Ref("channel"), edge.To("app", App.Type). Field("app_id"). Unique(). Required(), } } func (PayChannel) Annotations() []schema.Annotation { return []schema.Annotation{ entsql.WithComments(true), schema.Comment("PayChannel Table | 支付渠道表"), entsql.Annotation{Table: "pay_channel"}, } }