feat: primary db property

pull/2499/head
WintBit 4 days ago
parent ca080fc758
commit 70dba983d2

File diff suppressed because one or more lines are too long

@ -21,6 +21,8 @@ type Membership struct {
UserID int `json:"user_id,omitempty"` UserID int `json:"user_id,omitempty"`
// GroupID holds the value of the "group_id" field. // GroupID holds the value of the "group_id" field.
GroupID int `json:"group_id,omitempty"` GroupID int `json:"group_id,omitempty"`
// IsPrimary holds the value of the "is_primary" field.
IsPrimary bool `json:"is_primary,omitempty"`
// CreatedAt holds the value of the "created_at" field. // CreatedAt holds the value of the "created_at" field.
CreatedAt time.Time `json:"created_at,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"`
// ExpiresAt holds the value of the "expires_at" field. // ExpiresAt holds the value of the "expires_at" field.
@ -73,6 +75,8 @@ func (*Membership) scanValues(columns []string) ([]any, error) {
values := make([]any, len(columns)) values := make([]any, len(columns))
for i := range columns { for i := range columns {
switch columns[i] { switch columns[i] {
case membership.FieldIsPrimary:
values[i] = new(sql.NullBool)
case membership.FieldUserID, membership.FieldGroupID: case membership.FieldUserID, membership.FieldGroupID:
values[i] = new(sql.NullInt64) values[i] = new(sql.NullInt64)
case membership.FieldCreatedAt, membership.FieldExpiresAt: case membership.FieldCreatedAt, membership.FieldExpiresAt:
@ -104,6 +108,12 @@ func (m *Membership) assignValues(columns []string, values []any) error {
} else if value.Valid { } else if value.Valid {
m.GroupID = int(value.Int64) m.GroupID = int(value.Int64)
} }
case membership.FieldIsPrimary:
if value, ok := values[i].(*sql.NullBool); !ok {
return fmt.Errorf("unexpected type %T for field is_primary", values[i])
} else if value.Valid {
m.IsPrimary = value.Bool
}
case membership.FieldCreatedAt: case membership.FieldCreatedAt:
if value, ok := values[i].(*sql.NullTime); !ok { if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field created_at", values[i]) return fmt.Errorf("unexpected type %T for field created_at", values[i])
@ -168,6 +178,9 @@ func (m *Membership) String() string {
builder.WriteString("group_id=") builder.WriteString("group_id=")
builder.WriteString(fmt.Sprintf("%v", m.GroupID)) builder.WriteString(fmt.Sprintf("%v", m.GroupID))
builder.WriteString(", ") builder.WriteString(", ")
builder.WriteString("is_primary=")
builder.WriteString(fmt.Sprintf("%v", m.IsPrimary))
builder.WriteString(", ")
builder.WriteString("created_at=") builder.WriteString("created_at=")
builder.WriteString(m.CreatedAt.Format(time.ANSIC)) builder.WriteString(m.CreatedAt.Format(time.ANSIC))
builder.WriteString(", ") builder.WriteString(", ")

@ -16,6 +16,8 @@ const (
FieldUserID = "user_id" FieldUserID = "user_id"
// FieldGroupID holds the string denoting the group_id field in the database. // FieldGroupID holds the string denoting the group_id field in the database.
FieldGroupID = "group_id" FieldGroupID = "group_id"
// FieldIsPrimary holds the string denoting the is_primary field in the database.
FieldIsPrimary = "is_primary"
// FieldCreatedAt holds the string denoting the created_at field in the database. // FieldCreatedAt holds the string denoting the created_at field in the database.
FieldCreatedAt = "created_at" FieldCreatedAt = "created_at"
// FieldExpiresAt holds the string denoting the expires_at field in the database. // FieldExpiresAt holds the string denoting the expires_at field in the database.
@ -50,6 +52,7 @@ const (
var Columns = []string{ var Columns = []string{
FieldUserID, FieldUserID,
FieldGroupID, FieldGroupID,
FieldIsPrimary,
FieldCreatedAt, FieldCreatedAt,
FieldExpiresAt, FieldExpiresAt,
} }
@ -65,6 +68,8 @@ func ValidColumn(column string) bool {
} }
var ( var (
// DefaultIsPrimary holds the default value on creation for the "is_primary" field.
DefaultIsPrimary bool
// DefaultCreatedAt holds the default value on creation for the "created_at" field. // DefaultCreatedAt holds the default value on creation for the "created_at" field.
DefaultCreatedAt func() time.Time DefaultCreatedAt func() time.Time
) )
@ -82,6 +87,11 @@ func ByGroupID(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldGroupID, opts...).ToFunc() return sql.OrderByField(FieldGroupID, opts...).ToFunc()
} }
// ByIsPrimary orders the results by the is_primary field.
func ByIsPrimary(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldIsPrimary, opts...).ToFunc()
}
// ByCreatedAt orders the results by the created_at field. // ByCreatedAt orders the results by the created_at field.
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption { func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc() return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()

@ -20,6 +20,11 @@ func GroupID(v int) predicate.Membership {
return predicate.Membership(sql.FieldEQ(FieldGroupID, v)) return predicate.Membership(sql.FieldEQ(FieldGroupID, v))
} }
// IsPrimary applies equality check predicate on the "is_primary" field. It's identical to IsPrimaryEQ.
func IsPrimary(v bool) predicate.Membership {
return predicate.Membership(sql.FieldEQ(FieldIsPrimary, v))
}
// CreatedAt applies equality check predicate on the "created_at" field. It's identical to CreatedAtEQ. // CreatedAt applies equality check predicate on the "created_at" field. It's identical to CreatedAtEQ.
func CreatedAt(v time.Time) predicate.Membership { func CreatedAt(v time.Time) predicate.Membership {
return predicate.Membership(sql.FieldEQ(FieldCreatedAt, v)) return predicate.Membership(sql.FieldEQ(FieldCreatedAt, v))
@ -70,6 +75,26 @@ func GroupIDNotIn(vs ...int) predicate.Membership {
return predicate.Membership(sql.FieldNotIn(FieldGroupID, vs...)) return predicate.Membership(sql.FieldNotIn(FieldGroupID, vs...))
} }
// IsPrimaryEQ applies the EQ predicate on the "is_primary" field.
func IsPrimaryEQ(v bool) predicate.Membership {
return predicate.Membership(sql.FieldEQ(FieldIsPrimary, v))
}
// IsPrimaryNEQ applies the NEQ predicate on the "is_primary" field.
func IsPrimaryNEQ(v bool) predicate.Membership {
return predicate.Membership(sql.FieldNEQ(FieldIsPrimary, v))
}
// IsPrimaryIsNil applies the IsNil predicate on the "is_primary" field.
func IsPrimaryIsNil() predicate.Membership {
return predicate.Membership(sql.FieldIsNull(FieldIsPrimary))
}
// IsPrimaryNotNil applies the NotNil predicate on the "is_primary" field.
func IsPrimaryNotNil() predicate.Membership {
return predicate.Membership(sql.FieldNotNull(FieldIsPrimary))
}
// CreatedAtEQ applies the EQ predicate on the "created_at" field. // CreatedAtEQ applies the EQ predicate on the "created_at" field.
func CreatedAtEQ(v time.Time) predicate.Membership { func CreatedAtEQ(v time.Time) predicate.Membership {
return predicate.Membership(sql.FieldEQ(FieldCreatedAt, v)) return predicate.Membership(sql.FieldEQ(FieldCreatedAt, v))

@ -36,6 +36,20 @@ func (mc *MembershipCreate) SetGroupID(i int) *MembershipCreate {
return mc return mc
} }
// SetIsPrimary sets the "is_primary" field.
func (mc *MembershipCreate) SetIsPrimary(b bool) *MembershipCreate {
mc.mutation.SetIsPrimary(b)
return mc
}
// SetNillableIsPrimary sets the "is_primary" field if the given value is not nil.
func (mc *MembershipCreate) SetNillableIsPrimary(b *bool) *MembershipCreate {
if b != nil {
mc.SetIsPrimary(*b)
}
return mc
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (mc *MembershipCreate) SetCreatedAt(t time.Time) *MembershipCreate { func (mc *MembershipCreate) SetCreatedAt(t time.Time) *MembershipCreate {
mc.mutation.SetCreatedAt(t) mc.mutation.SetCreatedAt(t)
@ -109,6 +123,10 @@ func (mc *MembershipCreate) ExecX(ctx context.Context) {
// defaults sets the default values of the builder before save. // defaults sets the default values of the builder before save.
func (mc *MembershipCreate) defaults() { func (mc *MembershipCreate) defaults() {
if _, ok := mc.mutation.IsPrimary(); !ok {
v := membership.DefaultIsPrimary
mc.mutation.SetIsPrimary(v)
}
if _, ok := mc.mutation.CreatedAt(); !ok { if _, ok := mc.mutation.CreatedAt(); !ok {
v := membership.DefaultCreatedAt() v := membership.DefaultCreatedAt()
mc.mutation.SetCreatedAt(v) mc.mutation.SetCreatedAt(v)
@ -156,6 +174,10 @@ func (mc *MembershipCreate) createSpec() (*Membership, *sqlgraph.CreateSpec) {
) )
_spec.OnConflict = mc.conflict _spec.OnConflict = mc.conflict
if value, ok := mc.mutation.IsPrimary(); ok {
_spec.SetField(membership.FieldIsPrimary, field.TypeBool, value)
_node.IsPrimary = value
}
if value, ok := mc.mutation.CreatedAt(); ok { if value, ok := mc.mutation.CreatedAt(); ok {
_spec.SetField(membership.FieldCreatedAt, field.TypeTime, value) _spec.SetField(membership.FieldCreatedAt, field.TypeTime, value)
_node.CreatedAt = value _node.CreatedAt = value
@ -274,6 +296,24 @@ func (u *MembershipUpsert) UpdateGroupID() *MembershipUpsert {
return u return u
} }
// SetIsPrimary sets the "is_primary" field.
func (u *MembershipUpsert) SetIsPrimary(v bool) *MembershipUpsert {
u.Set(membership.FieldIsPrimary, v)
return u
}
// UpdateIsPrimary sets the "is_primary" field to the value that was provided on create.
func (u *MembershipUpsert) UpdateIsPrimary() *MembershipUpsert {
u.SetExcluded(membership.FieldIsPrimary)
return u
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (u *MembershipUpsert) ClearIsPrimary() *MembershipUpsert {
u.SetNull(membership.FieldIsPrimary)
return u
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (u *MembershipUpsert) SetCreatedAt(v time.Time) *MembershipUpsert { func (u *MembershipUpsert) SetCreatedAt(v time.Time) *MembershipUpsert {
u.Set(membership.FieldCreatedAt, v) u.Set(membership.FieldCreatedAt, v)
@ -372,6 +412,27 @@ func (u *MembershipUpsertOne) UpdateGroupID() *MembershipUpsertOne {
}) })
} }
// SetIsPrimary sets the "is_primary" field.
func (u *MembershipUpsertOne) SetIsPrimary(v bool) *MembershipUpsertOne {
return u.Update(func(s *MembershipUpsert) {
s.SetIsPrimary(v)
})
}
// UpdateIsPrimary sets the "is_primary" field to the value that was provided on create.
func (u *MembershipUpsertOne) UpdateIsPrimary() *MembershipUpsertOne {
return u.Update(func(s *MembershipUpsert) {
s.UpdateIsPrimary()
})
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (u *MembershipUpsertOne) ClearIsPrimary() *MembershipUpsertOne {
return u.Update(func(s *MembershipUpsert) {
s.ClearIsPrimary()
})
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (u *MembershipUpsertOne) SetCreatedAt(v time.Time) *MembershipUpsertOne { func (u *MembershipUpsertOne) SetCreatedAt(v time.Time) *MembershipUpsertOne {
return u.Update(func(s *MembershipUpsert) { return u.Update(func(s *MembershipUpsert) {
@ -616,6 +677,27 @@ func (u *MembershipUpsertBulk) UpdateGroupID() *MembershipUpsertBulk {
}) })
} }
// SetIsPrimary sets the "is_primary" field.
func (u *MembershipUpsertBulk) SetIsPrimary(v bool) *MembershipUpsertBulk {
return u.Update(func(s *MembershipUpsert) {
s.SetIsPrimary(v)
})
}
// UpdateIsPrimary sets the "is_primary" field to the value that was provided on create.
func (u *MembershipUpsertBulk) UpdateIsPrimary() *MembershipUpsertBulk {
return u.Update(func(s *MembershipUpsert) {
s.UpdateIsPrimary()
})
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (u *MembershipUpsertBulk) ClearIsPrimary() *MembershipUpsertBulk {
return u.Update(func(s *MembershipUpsert) {
s.ClearIsPrimary()
})
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (u *MembershipUpsertBulk) SetCreatedAt(v time.Time) *MembershipUpsertBulk { func (u *MembershipUpsertBulk) SetCreatedAt(v time.Time) *MembershipUpsertBulk {
return u.Update(func(s *MembershipUpsert) { return u.Update(func(s *MembershipUpsert) {

@ -58,6 +58,26 @@ func (mu *MembershipUpdate) SetNillableGroupID(i *int) *MembershipUpdate {
return mu return mu
} }
// SetIsPrimary sets the "is_primary" field.
func (mu *MembershipUpdate) SetIsPrimary(b bool) *MembershipUpdate {
mu.mutation.SetIsPrimary(b)
return mu
}
// SetNillableIsPrimary sets the "is_primary" field if the given value is not nil.
func (mu *MembershipUpdate) SetNillableIsPrimary(b *bool) *MembershipUpdate {
if b != nil {
mu.SetIsPrimary(*b)
}
return mu
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (mu *MembershipUpdate) ClearIsPrimary() *MembershipUpdate {
mu.mutation.ClearIsPrimary()
return mu
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (mu *MembershipUpdate) SetCreatedAt(t time.Time) *MembershipUpdate { func (mu *MembershipUpdate) SetCreatedAt(t time.Time) *MembershipUpdate {
mu.mutation.SetCreatedAt(t) mu.mutation.SetCreatedAt(t)
@ -169,6 +189,12 @@ func (mu *MembershipUpdate) sqlSave(ctx context.Context) (n int, err error) {
} }
} }
} }
if value, ok := mu.mutation.IsPrimary(); ok {
_spec.SetField(membership.FieldIsPrimary, field.TypeBool, value)
}
if mu.mutation.IsPrimaryCleared() {
_spec.ClearField(membership.FieldIsPrimary, field.TypeBool)
}
if value, ok := mu.mutation.CreatedAt(); ok { if value, ok := mu.mutation.CreatedAt(); ok {
_spec.SetField(membership.FieldCreatedAt, field.TypeTime, value) _spec.SetField(membership.FieldCreatedAt, field.TypeTime, value)
} }
@ -284,6 +310,26 @@ func (muo *MembershipUpdateOne) SetNillableGroupID(i *int) *MembershipUpdateOne
return muo return muo
} }
// SetIsPrimary sets the "is_primary" field.
func (muo *MembershipUpdateOne) SetIsPrimary(b bool) *MembershipUpdateOne {
muo.mutation.SetIsPrimary(b)
return muo
}
// SetNillableIsPrimary sets the "is_primary" field if the given value is not nil.
func (muo *MembershipUpdateOne) SetNillableIsPrimary(b *bool) *MembershipUpdateOne {
if b != nil {
muo.SetIsPrimary(*b)
}
return muo
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (muo *MembershipUpdateOne) ClearIsPrimary() *MembershipUpdateOne {
muo.mutation.ClearIsPrimary()
return muo
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (muo *MembershipUpdateOne) SetCreatedAt(t time.Time) *MembershipUpdateOne { func (muo *MembershipUpdateOne) SetCreatedAt(t time.Time) *MembershipUpdateOne {
muo.mutation.SetCreatedAt(t) muo.mutation.SetCreatedAt(t)
@ -427,6 +473,12 @@ func (muo *MembershipUpdateOne) sqlSave(ctx context.Context) (_node *Membership,
} }
} }
} }
if value, ok := muo.mutation.IsPrimary(); ok {
_spec.SetField(membership.FieldIsPrimary, field.TypeBool, value)
}
if muo.mutation.IsPrimaryCleared() {
_spec.ClearField(membership.FieldIsPrimary, field.TypeBool)
}
if value, ok := muo.mutation.CreatedAt(); ok { if value, ok := muo.mutation.CreatedAt(); ok {
_spec.SetField(membership.FieldCreatedAt, field.TypeTime, value) _spec.SetField(membership.FieldCreatedAt, field.TypeTime, value)
} }

@ -189,6 +189,7 @@ var (
} }
// MembershipsColumns holds the columns for the "memberships" table. // MembershipsColumns holds the columns for the "memberships" table.
MembershipsColumns = []*schema.Column{ MembershipsColumns = []*schema.Column{
{Name: "is_primary", Type: field.TypeBool, Nullable: true, Default: false},
{Name: "created_at", Type: field.TypeTime}, {Name: "created_at", Type: field.TypeTime},
{Name: "expires_at", Type: field.TypeTime, Nullable: true}, {Name: "expires_at", Type: field.TypeTime, Nullable: true},
{Name: "user_id", Type: field.TypeInt}, {Name: "user_id", Type: field.TypeInt},
@ -198,17 +199,17 @@ var (
MembershipsTable = &schema.Table{ MembershipsTable = &schema.Table{
Name: "memberships", Name: "memberships",
Columns: MembershipsColumns, Columns: MembershipsColumns,
PrimaryKey: []*schema.Column{MembershipsColumns[3], MembershipsColumns[2]}, PrimaryKey: []*schema.Column{MembershipsColumns[4], MembershipsColumns[3]},
ForeignKeys: []*schema.ForeignKey{ ForeignKeys: []*schema.ForeignKey{
{ {
Symbol: "memberships_users_user", Symbol: "memberships_users_user",
Columns: []*schema.Column{MembershipsColumns[2]}, Columns: []*schema.Column{MembershipsColumns[3]},
RefColumns: []*schema.Column{UsersColumns[0]}, RefColumns: []*schema.Column{UsersColumns[0]},
OnDelete: schema.NoAction, OnDelete: schema.NoAction,
}, },
{ {
Symbol: "memberships_groups_group", Symbol: "memberships_groups_group",
Columns: []*schema.Column{MembershipsColumns[3]}, Columns: []*schema.Column{MembershipsColumns[4]},
RefColumns: []*schema.Column{GroupsColumns[0]}, RefColumns: []*schema.Column{GroupsColumns[0]},
OnDelete: schema.NoAction, OnDelete: schema.NoAction,
}, },

@ -5687,6 +5687,7 @@ type MembershipMutation struct {
config config
op Op op Op
typ string typ string
is_primary *bool
created_at *time.Time created_at *time.Time
expires_at *time.Time expires_at *time.Time
clearedFields map[string]struct{} clearedFields map[string]struct{}
@ -5775,6 +5776,38 @@ func (m *MembershipMutation) ResetGroupID() {
m.group = nil m.group = nil
} }
// SetIsPrimary sets the "is_primary" field.
func (m *MembershipMutation) SetIsPrimary(b bool) {
m.is_primary = &b
}
// IsPrimary returns the value of the "is_primary" field in the mutation.
func (m *MembershipMutation) IsPrimary() (r bool, exists bool) {
v := m.is_primary
if v == nil {
return
}
return *v, true
}
// ClearIsPrimary clears the value of the "is_primary" field.
func (m *MembershipMutation) ClearIsPrimary() {
m.is_primary = nil
m.clearedFields[membership.FieldIsPrimary] = struct{}{}
}
// IsPrimaryCleared returns if the "is_primary" field was cleared in this mutation.
func (m *MembershipMutation) IsPrimaryCleared() bool {
_, ok := m.clearedFields[membership.FieldIsPrimary]
return ok
}
// ResetIsPrimary resets all changes to the "is_primary" field.
func (m *MembershipMutation) ResetIsPrimary() {
m.is_primary = nil
delete(m.clearedFields, membership.FieldIsPrimary)
}
// SetCreatedAt sets the "created_at" field. // SetCreatedAt sets the "created_at" field.
func (m *MembershipMutation) SetCreatedAt(t time.Time) { func (m *MembershipMutation) SetCreatedAt(t time.Time) {
m.created_at = &t m.created_at = &t
@ -5914,13 +5947,16 @@ func (m *MembershipMutation) Type() string {
// order to get all numeric fields that were incremented/decremented, call // order to get all numeric fields that were incremented/decremented, call
// AddedFields(). // AddedFields().
func (m *MembershipMutation) Fields() []string { func (m *MembershipMutation) Fields() []string {
fields := make([]string, 0, 4) fields := make([]string, 0, 5)
if m.user != nil { if m.user != nil {
fields = append(fields, membership.FieldUserID) fields = append(fields, membership.FieldUserID)
} }
if m.group != nil { if m.group != nil {
fields = append(fields, membership.FieldGroupID) fields = append(fields, membership.FieldGroupID)
} }
if m.is_primary != nil {
fields = append(fields, membership.FieldIsPrimary)
}
if m.created_at != nil { if m.created_at != nil {
fields = append(fields, membership.FieldCreatedAt) fields = append(fields, membership.FieldCreatedAt)
} }
@ -5939,6 +5975,8 @@ func (m *MembershipMutation) Field(name string) (ent.Value, bool) {
return m.UserID() return m.UserID()
case membership.FieldGroupID: case membership.FieldGroupID:
return m.GroupID() return m.GroupID()
case membership.FieldIsPrimary:
return m.IsPrimary()
case membership.FieldCreatedAt: case membership.FieldCreatedAt:
return m.CreatedAt() return m.CreatedAt()
case membership.FieldExpiresAt: case membership.FieldExpiresAt:
@ -5973,6 +6011,13 @@ func (m *MembershipMutation) SetField(name string, value ent.Value) error {
} }
m.SetGroupID(v) m.SetGroupID(v)
return nil return nil
case membership.FieldIsPrimary:
v, ok := value.(bool)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetIsPrimary(v)
return nil
case membership.FieldCreatedAt: case membership.FieldCreatedAt:
v, ok := value.(time.Time) v, ok := value.(time.Time)
if !ok { if !ok {
@ -6020,6 +6065,9 @@ func (m *MembershipMutation) AddField(name string, value ent.Value) error {
// mutation. // mutation.
func (m *MembershipMutation) ClearedFields() []string { func (m *MembershipMutation) ClearedFields() []string {
var fields []string var fields []string
if m.FieldCleared(membership.FieldIsPrimary) {
fields = append(fields, membership.FieldIsPrimary)
}
if m.FieldCleared(membership.FieldExpiresAt) { if m.FieldCleared(membership.FieldExpiresAt) {
fields = append(fields, membership.FieldExpiresAt) fields = append(fields, membership.FieldExpiresAt)
} }
@ -6037,6 +6085,9 @@ func (m *MembershipMutation) FieldCleared(name string) bool {
// error if the field is not defined in the schema. // error if the field is not defined in the schema.
func (m *MembershipMutation) ClearField(name string) error { func (m *MembershipMutation) ClearField(name string) error {
switch name { switch name {
case membership.FieldIsPrimary:
m.ClearIsPrimary()
return nil
case membership.FieldExpiresAt: case membership.FieldExpiresAt:
m.ClearExpiresAt() m.ClearExpiresAt()
return nil return nil
@ -6054,6 +6105,9 @@ func (m *MembershipMutation) ResetField(name string) error {
case membership.FieldGroupID: case membership.FieldGroupID:
m.ResetGroupID() m.ResetGroupID()
return nil return nil
case membership.FieldIsPrimary:
m.ResetIsPrimary()
return nil
case membership.FieldCreatedAt: case membership.FieldCreatedAt:
m.ResetCreatedAt() m.ResetCreatedAt()
return nil return nil

@ -133,8 +133,12 @@ func init() {
group.DefaultSettings = groupDescSettings.Default.(*types.GroupSetting) group.DefaultSettings = groupDescSettings.Default.(*types.GroupSetting)
membershipFields := schema.Membership{}.Fields() membershipFields := schema.Membership{}.Fields()
_ = membershipFields _ = membershipFields
// membershipDescIsPrimary is the schema descriptor for is_primary field.
membershipDescIsPrimary := membershipFields[2].Descriptor()
// membership.DefaultIsPrimary holds the default value on creation for the is_primary field.
membership.DefaultIsPrimary = membershipDescIsPrimary.Default.(bool)
// membershipDescCreatedAt is the schema descriptor for created_at field. // membershipDescCreatedAt is the schema descriptor for created_at field.
membershipDescCreatedAt := membershipFields[2].Descriptor() membershipDescCreatedAt := membershipFields[3].Descriptor()
// membership.DefaultCreatedAt holds the default value on creation for the created_at field. // membership.DefaultCreatedAt holds the default value on creation for the created_at field.
membership.DefaultCreatedAt = membershipDescCreatedAt.Default.(func() time.Time) membership.DefaultCreatedAt = membershipDescCreatedAt.Default.(func() time.Time)
metadataMixin := schema.Metadata{}.Mixin() metadataMixin := schema.Metadata{}.Mixin()

@ -24,6 +24,7 @@ func (Membership) Fields() []ent.Field {
return []ent.Field{ return []ent.Field{
field.Int("user_id"), field.Int("user_id"),
field.Int("group_id"), field.Int("group_id"),
field.Bool("is_primary").Default(false).Optional(),
field.Time("created_at").Default(time.Now), field.Time("created_at").Default(time.Now),
field.Time("expires_at").Nillable().Optional(), field.Time("expires_at").Nillable().Optional(),
} }

@ -64,6 +64,17 @@ func (u *User) GroupMaxAria2BatchSize() int {
} }
func (u *User) GetPrimaryGroup() *Group { func (u *User) GetPrimaryGroup() *Group {
// TODO: design user primary group g, ok := lo.Find(u.Edges.Membership, func(d *Membership) bool {
panic("implement me") return d.IsPrimary
})
if ok {
return g.Edges.Group
}
if len(u.Edges.Group) > 0 {
return u.Edges.Group[0]
}
return nil
} }

@ -12,7 +12,7 @@ const (
DataFolder = "data" DataFolder = "data"
) )
var UseWorkingDir = false var UseWorkingDir = true
// DotPathToStandardPath 将","分割的路径转换为标准路径 // DotPathToStandardPath 将","分割的路径转换为标准路径
func DotPathToStandardPath(path string) string { func DotPathToStandardPath(path string) string {

Loading…
Cancel
Save