fixed match win/loss/ties

This commit is contained in:
2021-10-08 17:15:06 +02:00
parent 1fda101a35
commit 1816c5a2b5
28 changed files with 363 additions and 654 deletions

View File

@@ -217,6 +217,8 @@ func (d *DemoMatchLoader) steamEventHandler() {
os.Remove(d.sentryFile) os.Remove(d.sentryFile)
os.Remove(d.loginKey) os.Remove(d.loginKey)
log.Fatalf("[DL] Steam login wrong") log.Fatalf("[DL] Steam login wrong")
case steamlang.EResult_InvalidLoginAuthCode:
log.Fatalf("[DL] Steam auth code wrong")
} }
case *steam.DisconnectedEvent: case *steam.DisconnectedEvent:
log.Warningf("Steam disconnected, trying to reconnect...") log.Warningf("Steam disconnected, trying to reconnect...")

View File

@@ -74,9 +74,9 @@ func (p *DemoParser) downloadReplay(demo *Demo) (io.Reader, error) {
func (p *DemoParser) getDBPlayer(demo *Demo, demoPlayer *common.Player) (*ent.Stats, error) { func (p *DemoParser) getDBPlayer(demo *Demo, demoPlayer *common.Player) (*ent.Stats, error) {
p.lock.RLock() p.lock.RLock()
tMatchPlayer, err := p.db.Stats.Query().WithMatches(func(q *ent.MatchQuery) { tMatchPlayer, err := p.db.Stats.Query().WithMatches(func(q *ent.MatchQuery) {
q.Where(match.MatchID(demo.MatchId)) q.Where(match.ID(demo.MatchId))
}).WithPlayers(func(q *ent.PlayerQuery) { }).WithPlayers(func(q *ent.PlayerQuery) {
q.Where(player.Steamid(demoPlayer.SteamID64)) q.Where(player.ID(demoPlayer.SteamID64))
}).Only(context.Background()) }).Only(context.Background())
p.lock.RUnlock() p.lock.RUnlock()
if err != nil { if err != nil {
@@ -93,7 +93,7 @@ func (p *DemoParser) getMatchPlayerBySteamID(stats []*ent.Stats, steamId uint64)
log.Errorf("Unbale to get Stats from statList: %v", err) log.Errorf("Unbale to get Stats from statList: %v", err)
return nil return nil
} }
if tPLayer.Steamid == steamId { if tPLayer.ID == steamId {
return tStats return tStats
} }
} }
@@ -111,7 +111,7 @@ func (p *DemoParser) parseWorker() {
} }
p.lock.RLock() p.lock.RLock()
tMatch, err := p.db.Match.Query().Where(match.MatchID(demo.MatchId)).Only(context.Background()) tMatch, err := p.db.Match.Query().Where(match.ID(demo.MatchId)).Only(context.Background())
p.lock.RUnlock() p.lock.RUnlock()
if err != nil { if err != nil {
log.Errorf("[DP] Unable to get match %d: %v", demo.MatchId, err) log.Errorf("[DP] Unable to get match %d: %v", demo.MatchId, err)
@@ -313,7 +313,7 @@ func (p *DemoParser) parseWorker() {
err := tMatchPlayer.Update().SetExtended(tMatchPlayer.Extended).Exec(context.Background()) err := tMatchPlayer.Update().SetExtended(tMatchPlayer.Extended).Exec(context.Background())
p.lock.Unlock() p.lock.Unlock()
if err != nil { if err != nil {
log.Errorf("[DP] Unable to update player %d in database: %v", tMatchPlayer.Edges.Players.Steamid, err) log.Errorf("[DP] Unable to update player %d in database: %v", tMatchPlayer.Edges.Players.ID, err)
continue continue
} }
} }

View File

@@ -176,7 +176,7 @@ func (c *MatchClient) UpdateOne(m *Match) *MatchUpdateOne {
} }
// UpdateOneID returns an update builder for the given id. // UpdateOneID returns an update builder for the given id.
func (c *MatchClient) UpdateOneID(id int) *MatchUpdateOne { func (c *MatchClient) UpdateOneID(id uint64) *MatchUpdateOne {
mutation := newMatchMutation(c.config, OpUpdateOne, withMatchID(id)) mutation := newMatchMutation(c.config, OpUpdateOne, withMatchID(id))
return &MatchUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} return &MatchUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation}
} }
@@ -193,7 +193,7 @@ func (c *MatchClient) DeleteOne(m *Match) *MatchDeleteOne {
} }
// DeleteOneID returns a delete builder for the given id. // DeleteOneID returns a delete builder for the given id.
func (c *MatchClient) DeleteOneID(id int) *MatchDeleteOne { func (c *MatchClient) DeleteOneID(id uint64) *MatchDeleteOne {
builder := c.Delete().Where(match.ID(id)) builder := c.Delete().Where(match.ID(id))
builder.mutation.id = &id builder.mutation.id = &id
builder.mutation.op = OpDeleteOne builder.mutation.op = OpDeleteOne
@@ -208,12 +208,12 @@ func (c *MatchClient) Query() *MatchQuery {
} }
// Get returns a Match entity by its id. // Get returns a Match entity by its id.
func (c *MatchClient) Get(ctx context.Context, id int) (*Match, error) { func (c *MatchClient) Get(ctx context.Context, id uint64) (*Match, error) {
return c.Query().Where(match.ID(id)).Only(ctx) return c.Query().Where(match.ID(id)).Only(ctx)
} }
// GetX is like Get, but panics if an error occurs. // GetX is like Get, but panics if an error occurs.
func (c *MatchClient) GetX(ctx context.Context, id int) *Match { func (c *MatchClient) GetX(ctx context.Context, id uint64) *Match {
obj, err := c.Get(ctx, id) obj, err := c.Get(ctx, id)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -298,7 +298,7 @@ func (c *PlayerClient) UpdateOne(pl *Player) *PlayerUpdateOne {
} }
// UpdateOneID returns an update builder for the given id. // UpdateOneID returns an update builder for the given id.
func (c *PlayerClient) UpdateOneID(id int) *PlayerUpdateOne { func (c *PlayerClient) UpdateOneID(id uint64) *PlayerUpdateOne {
mutation := newPlayerMutation(c.config, OpUpdateOne, withPlayerID(id)) mutation := newPlayerMutation(c.config, OpUpdateOne, withPlayerID(id))
return &PlayerUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation} return &PlayerUpdateOne{config: c.config, hooks: c.Hooks(), mutation: mutation}
} }
@@ -315,7 +315,7 @@ func (c *PlayerClient) DeleteOne(pl *Player) *PlayerDeleteOne {
} }
// DeleteOneID returns a delete builder for the given id. // DeleteOneID returns a delete builder for the given id.
func (c *PlayerClient) DeleteOneID(id int) *PlayerDeleteOne { func (c *PlayerClient) DeleteOneID(id uint64) *PlayerDeleteOne {
builder := c.Delete().Where(player.ID(id)) builder := c.Delete().Where(player.ID(id))
builder.mutation.id = &id builder.mutation.id = &id
builder.mutation.op = OpDeleteOne builder.mutation.op = OpDeleteOne
@@ -330,12 +330,12 @@ func (c *PlayerClient) Query() *PlayerQuery {
} }
// Get returns a Player entity by its id. // Get returns a Player entity by its id.
func (c *PlayerClient) Get(ctx context.Context, id int) (*Player, error) { func (c *PlayerClient) Get(ctx context.Context, id uint64) (*Player, error) {
return c.Query().Where(player.ID(id)).Only(ctx) return c.Query().Where(player.ID(id)).Only(ctx)
} }
// GetX is like Get, but panics if an error occurs. // GetX is like Get, but panics if an error occurs.
func (c *PlayerClient) GetX(ctx context.Context, id int) *Player { func (c *PlayerClient) GetX(ctx context.Context, id uint64) *Player {
obj, err := c.Get(ctx, id) obj, err := c.Get(ctx, id)
if err != nil { if err != nil {
panic(err) panic(err)

View File

@@ -16,9 +16,7 @@ import (
type Match struct { type Match struct {
config `json:"-"` config `json:"-"`
// ID of the ent. // ID of the ent.
ID int `json:"id,omitempty"` ID uint64 `json:"match_id,string"`
// MatchID holds the value of the "match_id" field.
MatchID uint64 `json:"match_id,string"`
// ShareCode holds the value of the "share_code" field. // ShareCode holds the value of the "share_code" field.
ShareCode string `json:"share_code,omitempty"` ShareCode string `json:"share_code,omitempty"`
// Map holds the value of the "map" field. // Map holds the value of the "map" field.
@@ -92,7 +90,7 @@ func (*Match) scanValues(columns []string) ([]interface{}, error) {
values[i] = new([]byte) values[i] = new([]byte)
case match.FieldDemoExpired, match.FieldDemoParsed: case match.FieldDemoExpired, match.FieldDemoParsed:
values[i] = new(sql.NullBool) values[i] = new(sql.NullBool)
case match.FieldID, match.FieldMatchID, match.FieldScoreTeamA, match.FieldScoreTeamB, match.FieldDuration, match.FieldMatchResult, match.FieldMaxRounds: case match.FieldID, match.FieldScoreTeamA, match.FieldScoreTeamB, match.FieldDuration, match.FieldMatchResult, match.FieldMaxRounds:
values[i] = new(sql.NullInt64) values[i] = new(sql.NullInt64)
case match.FieldShareCode, match.FieldMap, match.FieldReplayURL: case match.FieldShareCode, match.FieldMap, match.FieldReplayURL:
values[i] = new(sql.NullString) values[i] = new(sql.NullString)
@@ -118,13 +116,7 @@ func (m *Match) assignValues(columns []string, values []interface{}) error {
if !ok { if !ok {
return fmt.Errorf("unexpected type %T for field id", value) return fmt.Errorf("unexpected type %T for field id", value)
} }
m.ID = int(value.Int64) m.ID = uint64(value.Int64)
case match.FieldMatchID:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field match_id", values[i])
} else if value.Valid {
m.MatchID = uint64(value.Int64)
}
case match.FieldShareCode: case match.FieldShareCode:
if value, ok := values[i].(*sql.NullString); !ok { if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field share_code", values[i]) return fmt.Errorf("unexpected type %T for field share_code", values[i])
@@ -237,8 +229,6 @@ func (m *Match) String() string {
var builder strings.Builder var builder strings.Builder
builder.WriteString("Match(") builder.WriteString("Match(")
builder.WriteString(fmt.Sprintf("id=%v", m.ID)) builder.WriteString(fmt.Sprintf("id=%v", m.ID))
builder.WriteString(", match_id=")
builder.WriteString(fmt.Sprintf("%v", m.MatchID))
builder.WriteString(", share_code=") builder.WriteString(", share_code=")
builder.WriteString(m.ShareCode) builder.WriteString(m.ShareCode)
builder.WriteString(", map=") builder.WriteString(", map=")

View File

@@ -7,8 +7,6 @@ const (
Label = "match" Label = "match"
// FieldID holds the string denoting the id field in the database. // FieldID holds the string denoting the id field in the database.
FieldID = "id" FieldID = "id"
// FieldMatchID holds the string denoting the match_id field in the database.
FieldMatchID = "match_id"
// FieldShareCode holds the string denoting the share_code field in the database. // FieldShareCode holds the string denoting the share_code field in the database.
FieldShareCode = "share_code" FieldShareCode = "share_code"
// FieldMap holds the string denoting the map field in the database. // FieldMap holds the string denoting the map field in the database.
@@ -56,7 +54,6 @@ const (
// Columns holds all SQL columns for match fields. // Columns holds all SQL columns for match fields.
var Columns = []string{ var Columns = []string{
FieldID, FieldID,
FieldMatchID,
FieldShareCode, FieldShareCode,
FieldMap, FieldMap,
FieldDate, FieldDate,

View File

@@ -11,28 +11,28 @@ import (
) )
// ID filters vertices based on their ID field. // ID filters vertices based on their ID field.
func ID(id int) predicate.Match { func ID(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldID), id)) s.Where(sql.EQ(s.C(FieldID), id))
}) })
} }
// IDEQ applies the EQ predicate on the ID field. // IDEQ applies the EQ predicate on the ID field.
func IDEQ(id int) predicate.Match { func IDEQ(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldID), id)) s.Where(sql.EQ(s.C(FieldID), id))
}) })
} }
// IDNEQ applies the NEQ predicate on the ID field. // IDNEQ applies the NEQ predicate on the ID field.
func IDNEQ(id int) predicate.Match { func IDNEQ(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.NEQ(s.C(FieldID), id)) s.Where(sql.NEQ(s.C(FieldID), id))
}) })
} }
// IDIn applies the In predicate on the ID field. // IDIn applies the In predicate on the ID field.
func IDIn(ids ...int) predicate.Match { func IDIn(ids ...uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants, // if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy. // since we can't apply "IN ()". This will make this predicate falsy.
@@ -49,7 +49,7 @@ func IDIn(ids ...int) predicate.Match {
} }
// IDNotIn applies the NotIn predicate on the ID field. // IDNotIn applies the NotIn predicate on the ID field.
func IDNotIn(ids ...int) predicate.Match { func IDNotIn(ids ...uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants, // if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy. // since we can't apply "IN ()". This will make this predicate falsy.
@@ -66,40 +66,33 @@ func IDNotIn(ids ...int) predicate.Match {
} }
// IDGT applies the GT predicate on the ID field. // IDGT applies the GT predicate on the ID field.
func IDGT(id int) predicate.Match { func IDGT(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.GT(s.C(FieldID), id)) s.Where(sql.GT(s.C(FieldID), id))
}) })
} }
// IDGTE applies the GTE predicate on the ID field. // IDGTE applies the GTE predicate on the ID field.
func IDGTE(id int) predicate.Match { func IDGTE(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.GTE(s.C(FieldID), id)) s.Where(sql.GTE(s.C(FieldID), id))
}) })
} }
// IDLT applies the LT predicate on the ID field. // IDLT applies the LT predicate on the ID field.
func IDLT(id int) predicate.Match { func IDLT(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.LT(s.C(FieldID), id)) s.Where(sql.LT(s.C(FieldID), id))
}) })
} }
// IDLTE applies the LTE predicate on the ID field. // IDLTE applies the LTE predicate on the ID field.
func IDLTE(id int) predicate.Match { func IDLTE(id uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
s.Where(sql.LTE(s.C(FieldID), id)) s.Where(sql.LTE(s.C(FieldID), id))
}) })
} }
// MatchID applies equality check predicate on the "match_id" field. It's identical to MatchIDEQ.
func MatchID(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldMatchID), v))
})
}
// ShareCode applies equality check predicate on the "share_code" field. It's identical to ShareCodeEQ. // ShareCode applies equality check predicate on the "share_code" field. It's identical to ShareCodeEQ.
func ShareCode(v string) predicate.Match { func ShareCode(v string) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {
@@ -177,82 +170,6 @@ func DemoParsed(v bool) predicate.Match {
}) })
} }
// MatchIDEQ applies the EQ predicate on the "match_id" field.
func MatchIDEQ(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldMatchID), v))
})
}
// MatchIDNEQ applies the NEQ predicate on the "match_id" field.
func MatchIDNEQ(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.NEQ(s.C(FieldMatchID), v))
})
}
// MatchIDIn applies the In predicate on the "match_id" field.
func MatchIDIn(vs ...uint64) predicate.Match {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.Match(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.In(s.C(FieldMatchID), v...))
})
}
// MatchIDNotIn applies the NotIn predicate on the "match_id" field.
func MatchIDNotIn(vs ...uint64) predicate.Match {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.Match(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.NotIn(s.C(FieldMatchID), v...))
})
}
// MatchIDGT applies the GT predicate on the "match_id" field.
func MatchIDGT(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.GT(s.C(FieldMatchID), v))
})
}
// MatchIDGTE applies the GTE predicate on the "match_id" field.
func MatchIDGTE(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.GTE(s.C(FieldMatchID), v))
})
}
// MatchIDLT applies the LT predicate on the "match_id" field.
func MatchIDLT(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.LT(s.C(FieldMatchID), v))
})
}
// MatchIDLTE applies the LTE predicate on the "match_id" field.
func MatchIDLTE(v uint64) predicate.Match {
return predicate.Match(func(s *sql.Selector) {
s.Where(sql.LTE(s.C(FieldMatchID), v))
})
}
// ShareCodeEQ applies the EQ predicate on the "share_code" field. // ShareCodeEQ applies the EQ predicate on the "share_code" field.
func ShareCodeEQ(v string) predicate.Match { func ShareCodeEQ(v string) predicate.Match {
return predicate.Match(func(s *sql.Selector) { return predicate.Match(func(s *sql.Selector) {

View File

@@ -22,12 +22,6 @@ type MatchCreate struct {
hooks []Hook hooks []Hook
} }
// SetMatchID sets the "match_id" field.
func (mc *MatchCreate) SetMatchID(u uint64) *MatchCreate {
mc.mutation.SetMatchID(u)
return mc
}
// SetShareCode sets the "share_code" field. // SetShareCode sets the "share_code" field.
func (mc *MatchCreate) SetShareCode(s string) *MatchCreate { func (mc *MatchCreate) SetShareCode(s string) *MatchCreate {
mc.mutation.SetShareCode(s) mc.mutation.SetShareCode(s)
@@ -152,6 +146,12 @@ func (mc *MatchCreate) SetNillableEco(s *struct {
return mc return mc
} }
// SetID sets the "id" field.
func (mc *MatchCreate) SetID(u uint64) *MatchCreate {
mc.mutation.SetID(u)
return mc
}
// AddStatIDs adds the "stats" edge to the Stats entity by IDs. // AddStatIDs adds the "stats" edge to the Stats entity by IDs.
func (mc *MatchCreate) AddStatIDs(ids ...int) *MatchCreate { func (mc *MatchCreate) AddStatIDs(ids ...int) *MatchCreate {
mc.mutation.AddStatIDs(ids...) mc.mutation.AddStatIDs(ids...)
@@ -168,14 +168,14 @@ func (mc *MatchCreate) AddStats(s ...*Stats) *MatchCreate {
} }
// AddPlayerIDs adds the "players" edge to the Player entity by IDs. // AddPlayerIDs adds the "players" edge to the Player entity by IDs.
func (mc *MatchCreate) AddPlayerIDs(ids ...int) *MatchCreate { func (mc *MatchCreate) AddPlayerIDs(ids ...uint64) *MatchCreate {
mc.mutation.AddPlayerIDs(ids...) mc.mutation.AddPlayerIDs(ids...)
return mc return mc
} }
// AddPlayers adds the "players" edges to the Player entity. // AddPlayers adds the "players" edges to the Player entity.
func (mc *MatchCreate) AddPlayers(p ...*Player) *MatchCreate { func (mc *MatchCreate) AddPlayers(p ...*Player) *MatchCreate {
ids := make([]int, len(p)) ids := make([]uint64, len(p))
for i := range p { for i := range p {
ids[i] = p[i].ID ids[i] = p[i].ID
} }
@@ -265,9 +265,6 @@ func (mc *MatchCreate) defaults() {
// check runs all checks and user-defined validators on the builder. // check runs all checks and user-defined validators on the builder.
func (mc *MatchCreate) check() error { func (mc *MatchCreate) check() error {
if _, ok := mc.mutation.MatchID(); !ok {
return &ValidationError{Name: "match_id", err: errors.New(`ent: missing required field "match_id"`)}
}
if _, ok := mc.mutation.ShareCode(); !ok { if _, ok := mc.mutation.ShareCode(); !ok {
return &ValidationError{Name: "share_code", err: errors.New(`ent: missing required field "share_code"`)} return &ValidationError{Name: "share_code", err: errors.New(`ent: missing required field "share_code"`)}
} }
@@ -306,8 +303,10 @@ func (mc *MatchCreate) sqlSave(ctx context.Context) (*Match, error) {
} }
return nil, err return nil, err
} }
if _spec.ID.Value != _node.ID {
id := _spec.ID.Value.(int64) id := _spec.ID.Value.(int64)
_node.ID = int(id) _node.ID = uint64(id)
}
return _node, nil return _node, nil
} }
@@ -317,18 +316,14 @@ func (mc *MatchCreate) createSpec() (*Match, *sqlgraph.CreateSpec) {
_spec = &sqlgraph.CreateSpec{ _spec = &sqlgraph.CreateSpec{
Table: match.Table, Table: match.Table,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
} }
) )
if value, ok := mc.mutation.MatchID(); ok { if id, ok := mc.mutation.ID(); ok {
_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ _node.ID = id
Type: field.TypeUint64, _spec.ID.Value = id
Value: value,
Column: match.FieldMatchID,
})
_node.MatchID = value
} }
if value, ok := mc.mutation.ShareCode(); ok { if value, ok := mc.mutation.ShareCode(); ok {
_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
@@ -454,7 +449,7 @@ func (mc *MatchCreate) createSpec() (*Match, *sqlgraph.CreateSpec) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -509,9 +504,9 @@ func (mcb *MatchCreateBulk) Save(ctx context.Context) ([]*Match, error) {
} }
mutation.id = &nodes[i].ID mutation.id = &nodes[i].ID
mutation.done = true mutation.done = true
if specs[i].ID.Value != nil { if specs[i].ID.Value != nil && nodes[i].ID == 0 {
id := specs[i].ID.Value.(int64) id := specs[i].ID.Value.(int64)
nodes[i].ID = int(id) nodes[i].ID = uint64(id)
} }
return nodes[i], nil return nodes[i], nil
}) })

View File

@@ -72,7 +72,7 @@ func (md *MatchDelete) sqlExec(ctx context.Context) (int, error) {
Node: &sqlgraph.NodeSpec{ Node: &sqlgraph.NodeSpec{
Table: match.Table, Table: match.Table,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },

View File

@@ -30,6 +30,7 @@ type MatchQuery struct {
// eager-loading edges. // eager-loading edges.
withStats *StatsQuery withStats *StatsQuery
withPlayers *PlayerQuery withPlayers *PlayerQuery
modifiers []func(s *sql.Selector)
// intermediate query (i.e. traversal path). // intermediate query (i.e. traversal path).
sql *sql.Selector sql *sql.Selector
path func(context.Context) (*sql.Selector, error) path func(context.Context) (*sql.Selector, error)
@@ -134,8 +135,8 @@ func (mq *MatchQuery) FirstX(ctx context.Context) *Match {
// FirstID returns the first Match ID from the query. // FirstID returns the first Match ID from the query.
// Returns a *NotFoundError when no Match ID was found. // Returns a *NotFoundError when no Match ID was found.
func (mq *MatchQuery) FirstID(ctx context.Context) (id int, err error) { func (mq *MatchQuery) FirstID(ctx context.Context) (id uint64, err error) {
var ids []int var ids []uint64
if ids, err = mq.Limit(1).IDs(ctx); err != nil { if ids, err = mq.Limit(1).IDs(ctx); err != nil {
return return
} }
@@ -147,7 +148,7 @@ func (mq *MatchQuery) FirstID(ctx context.Context) (id int, err error) {
} }
// FirstIDX is like FirstID, but panics if an error occurs. // FirstIDX is like FirstID, but panics if an error occurs.
func (mq *MatchQuery) FirstIDX(ctx context.Context) int { func (mq *MatchQuery) FirstIDX(ctx context.Context) uint64 {
id, err := mq.FirstID(ctx) id, err := mq.FirstID(ctx)
if err != nil && !IsNotFound(err) { if err != nil && !IsNotFound(err) {
panic(err) panic(err)
@@ -185,8 +186,8 @@ func (mq *MatchQuery) OnlyX(ctx context.Context) *Match {
// OnlyID is like Only, but returns the only Match ID in the query. // OnlyID is like Only, but returns the only Match ID in the query.
// Returns a *NotSingularError when exactly one Match ID is not found. // Returns a *NotSingularError when exactly one Match ID is not found.
// Returns a *NotFoundError when no entities are found. // Returns a *NotFoundError when no entities are found.
func (mq *MatchQuery) OnlyID(ctx context.Context) (id int, err error) { func (mq *MatchQuery) OnlyID(ctx context.Context) (id uint64, err error) {
var ids []int var ids []uint64
if ids, err = mq.Limit(2).IDs(ctx); err != nil { if ids, err = mq.Limit(2).IDs(ctx); err != nil {
return return
} }
@@ -202,7 +203,7 @@ func (mq *MatchQuery) OnlyID(ctx context.Context) (id int, err error) {
} }
// OnlyIDX is like OnlyID, but panics if an error occurs. // OnlyIDX is like OnlyID, but panics if an error occurs.
func (mq *MatchQuery) OnlyIDX(ctx context.Context) int { func (mq *MatchQuery) OnlyIDX(ctx context.Context) uint64 {
id, err := mq.OnlyID(ctx) id, err := mq.OnlyID(ctx)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -228,8 +229,8 @@ func (mq *MatchQuery) AllX(ctx context.Context) []*Match {
} }
// IDs executes the query and returns a list of Match IDs. // IDs executes the query and returns a list of Match IDs.
func (mq *MatchQuery) IDs(ctx context.Context) ([]int, error) { func (mq *MatchQuery) IDs(ctx context.Context) ([]uint64, error) {
var ids []int var ids []uint64
if err := mq.Select(match.FieldID).Scan(ctx, &ids); err != nil { if err := mq.Select(match.FieldID).Scan(ctx, &ids); err != nil {
return nil, err return nil, err
} }
@@ -237,7 +238,7 @@ func (mq *MatchQuery) IDs(ctx context.Context) ([]int, error) {
} }
// IDsX is like IDs, but panics if an error occurs. // IDsX is like IDs, but panics if an error occurs.
func (mq *MatchQuery) IDsX(ctx context.Context) []int { func (mq *MatchQuery) IDsX(ctx context.Context) []uint64 {
ids, err := mq.IDs(ctx) ids, err := mq.IDs(ctx)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -327,12 +328,12 @@ func (mq *MatchQuery) WithPlayers(opts ...func(*PlayerQuery)) *MatchQuery {
// Example: // Example:
// //
// var v []struct { // var v []struct {
// MatchID uint64 `json:"match_id,string"` // ShareCode string `json:"share_code,omitempty"`
// Count int `json:"count,omitempty"` // Count int `json:"count,omitempty"`
// } // }
// //
// client.Match.Query(). // client.Match.Query().
// GroupBy(match.FieldMatchID). // GroupBy(match.FieldShareCode).
// Aggregate(ent.Count()). // Aggregate(ent.Count()).
// Scan(ctx, &v) // Scan(ctx, &v)
// //
@@ -354,11 +355,11 @@ func (mq *MatchQuery) GroupBy(field string, fields ...string) *MatchGroupBy {
// Example: // Example:
// //
// var v []struct { // var v []struct {
// MatchID uint64 `json:"match_id,string"` // ShareCode string `json:"share_code,omitempty"`
// } // }
// //
// client.Match.Query(). // client.Match.Query().
// Select(match.FieldMatchID). // Select(match.FieldShareCode).
// Scan(ctx, &v) // Scan(ctx, &v)
// //
func (mq *MatchQuery) Select(fields ...string) *MatchSelect { func (mq *MatchQuery) Select(fields ...string) *MatchSelect {
@@ -404,6 +405,9 @@ func (mq *MatchQuery) sqlAll(ctx context.Context) ([]*Match, error) {
node.Edges.loadedTypes = loadedTypes node.Edges.loadedTypes = loadedTypes
return node.assignValues(columns, values) return node.assignValues(columns, values)
} }
if len(mq.modifiers) > 0 {
_spec.Modifiers = mq.modifiers
}
if err := sqlgraph.QueryNodes(ctx, mq.driver, _spec); err != nil { if err := sqlgraph.QueryNodes(ctx, mq.driver, _spec); err != nil {
return nil, err return nil, err
} }
@@ -413,7 +417,7 @@ func (mq *MatchQuery) sqlAll(ctx context.Context) ([]*Match, error) {
if query := mq.withStats; query != nil { if query := mq.withStats; query != nil {
fks := make([]driver.Value, 0, len(nodes)) fks := make([]driver.Value, 0, len(nodes))
nodeids := make(map[int]*Match) nodeids := make(map[uint64]*Match)
for i := range nodes { for i := range nodes {
fks = append(fks, nodes[i].ID) fks = append(fks, nodes[i].ID)
nodeids[nodes[i].ID] = nodes[i] nodeids[nodes[i].ID] = nodes[i]
@@ -442,15 +446,15 @@ func (mq *MatchQuery) sqlAll(ctx context.Context) ([]*Match, error) {
if query := mq.withPlayers; query != nil { if query := mq.withPlayers; query != nil {
fks := make([]driver.Value, 0, len(nodes)) fks := make([]driver.Value, 0, len(nodes))
ids := make(map[int]*Match, len(nodes)) ids := make(map[uint64]*Match, len(nodes))
for _, node := range nodes { for _, node := range nodes {
ids[node.ID] = node ids[node.ID] = node
fks = append(fks, node.ID) fks = append(fks, node.ID)
node.Edges.Players = []*Player{} node.Edges.Players = []*Player{}
} }
var ( var (
edgeids []int edgeids []uint64
edges = make(map[int][]*Match) edges = make(map[uint64][]*Match)
) )
_spec := &sqlgraph.EdgeQuerySpec{ _spec := &sqlgraph.EdgeQuerySpec{
Edge: &sqlgraph.EdgeSpec{ Edge: &sqlgraph.EdgeSpec{
@@ -473,8 +477,8 @@ func (mq *MatchQuery) sqlAll(ctx context.Context) ([]*Match, error) {
if !ok || ein == nil { if !ok || ein == nil {
return fmt.Errorf("unexpected id value for edge-in") return fmt.Errorf("unexpected id value for edge-in")
} }
outValue := int(eout.Int64) outValue := uint64(eout.Int64)
inValue := int(ein.Int64) inValue := uint64(ein.Int64)
node, ok := ids[outValue] node, ok := ids[outValue]
if !ok { if !ok {
return fmt.Errorf("unexpected node id in edges: %v", outValue) return fmt.Errorf("unexpected node id in edges: %v", outValue)
@@ -510,6 +514,9 @@ func (mq *MatchQuery) sqlAll(ctx context.Context) ([]*Match, error) {
func (mq *MatchQuery) sqlCount(ctx context.Context) (int, error) { func (mq *MatchQuery) sqlCount(ctx context.Context) (int, error) {
_spec := mq.querySpec() _spec := mq.querySpec()
if len(mq.modifiers) > 0 {
_spec.Modifiers = mq.modifiers
}
return sqlgraph.CountNodes(ctx, mq.driver, _spec) return sqlgraph.CountNodes(ctx, mq.driver, _spec)
} }
@@ -527,7 +534,7 @@ func (mq *MatchQuery) querySpec() *sqlgraph.QuerySpec {
Table: match.Table, Table: match.Table,
Columns: match.Columns, Columns: match.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -581,6 +588,9 @@ func (mq *MatchQuery) sqlQuery(ctx context.Context) *sql.Selector {
selector = mq.sql selector = mq.sql
selector.Select(selector.Columns(columns...)...) selector.Select(selector.Columns(columns...)...)
} }
for _, m := range mq.modifiers {
m(selector)
}
for _, p := range mq.predicates { for _, p := range mq.predicates {
p(selector) p(selector)
} }
@@ -598,6 +608,12 @@ func (mq *MatchQuery) sqlQuery(ctx context.Context) *sql.Selector {
return selector return selector
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (mq *MatchQuery) Modify(modifiers ...func(s *sql.Selector)) *MatchSelect {
mq.modifiers = append(mq.modifiers, modifiers...)
return mq.Select()
}
// MatchGroupBy is the group-by builder for Match entities. // MatchGroupBy is the group-by builder for Match entities.
type MatchGroupBy struct { type MatchGroupBy struct {
config config
@@ -1087,3 +1103,9 @@ func (ms *MatchSelect) sqlScan(ctx context.Context, v interface{}) error {
defer rows.Close() defer rows.Close()
return sql.ScanSlice(rows, v) return sql.ScanSlice(rows, v)
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (ms *MatchSelect) Modify(modifiers ...func(s *sql.Selector)) *MatchSelect {
ms.modifiers = append(ms.modifiers, modifiers...)
return ms
}

View File

@@ -222,14 +222,14 @@ func (mu *MatchUpdate) AddStats(s ...*Stats) *MatchUpdate {
} }
// AddPlayerIDs adds the "players" edge to the Player entity by IDs. // AddPlayerIDs adds the "players" edge to the Player entity by IDs.
func (mu *MatchUpdate) AddPlayerIDs(ids ...int) *MatchUpdate { func (mu *MatchUpdate) AddPlayerIDs(ids ...uint64) *MatchUpdate {
mu.mutation.AddPlayerIDs(ids...) mu.mutation.AddPlayerIDs(ids...)
return mu return mu
} }
// AddPlayers adds the "players" edges to the Player entity. // AddPlayers adds the "players" edges to the Player entity.
func (mu *MatchUpdate) AddPlayers(p ...*Player) *MatchUpdate { func (mu *MatchUpdate) AddPlayers(p ...*Player) *MatchUpdate {
ids := make([]int, len(p)) ids := make([]uint64, len(p))
for i := range p { for i := range p {
ids[i] = p[i].ID ids[i] = p[i].ID
} }
@@ -269,14 +269,14 @@ func (mu *MatchUpdate) ClearPlayers() *MatchUpdate {
} }
// RemovePlayerIDs removes the "players" edge to Player entities by IDs. // RemovePlayerIDs removes the "players" edge to Player entities by IDs.
func (mu *MatchUpdate) RemovePlayerIDs(ids ...int) *MatchUpdate { func (mu *MatchUpdate) RemovePlayerIDs(ids ...uint64) *MatchUpdate {
mu.mutation.RemovePlayerIDs(ids...) mu.mutation.RemovePlayerIDs(ids...)
return mu return mu
} }
// RemovePlayers removes "players" edges to Player entities. // RemovePlayers removes "players" edges to Player entities.
func (mu *MatchUpdate) RemovePlayers(p ...*Player) *MatchUpdate { func (mu *MatchUpdate) RemovePlayers(p ...*Player) *MatchUpdate {
ids := make([]int, len(p)) ids := make([]uint64, len(p))
for i := range p { for i := range p {
ids[i] = p[i].ID ids[i] = p[i].ID
} }
@@ -343,7 +343,7 @@ func (mu *MatchUpdate) sqlSave(ctx context.Context) (n int, err error) {
Table: match.Table, Table: match.Table,
Columns: match.Columns, Columns: match.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -555,7 +555,7 @@ func (mu *MatchUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -571,7 +571,7 @@ func (mu *MatchUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -590,7 +590,7 @@ func (mu *MatchUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -812,14 +812,14 @@ func (muo *MatchUpdateOne) AddStats(s ...*Stats) *MatchUpdateOne {
} }
// AddPlayerIDs adds the "players" edge to the Player entity by IDs. // AddPlayerIDs adds the "players" edge to the Player entity by IDs.
func (muo *MatchUpdateOne) AddPlayerIDs(ids ...int) *MatchUpdateOne { func (muo *MatchUpdateOne) AddPlayerIDs(ids ...uint64) *MatchUpdateOne {
muo.mutation.AddPlayerIDs(ids...) muo.mutation.AddPlayerIDs(ids...)
return muo return muo
} }
// AddPlayers adds the "players" edges to the Player entity. // AddPlayers adds the "players" edges to the Player entity.
func (muo *MatchUpdateOne) AddPlayers(p ...*Player) *MatchUpdateOne { func (muo *MatchUpdateOne) AddPlayers(p ...*Player) *MatchUpdateOne {
ids := make([]int, len(p)) ids := make([]uint64, len(p))
for i := range p { for i := range p {
ids[i] = p[i].ID ids[i] = p[i].ID
} }
@@ -859,14 +859,14 @@ func (muo *MatchUpdateOne) ClearPlayers() *MatchUpdateOne {
} }
// RemovePlayerIDs removes the "players" edge to Player entities by IDs. // RemovePlayerIDs removes the "players" edge to Player entities by IDs.
func (muo *MatchUpdateOne) RemovePlayerIDs(ids ...int) *MatchUpdateOne { func (muo *MatchUpdateOne) RemovePlayerIDs(ids ...uint64) *MatchUpdateOne {
muo.mutation.RemovePlayerIDs(ids...) muo.mutation.RemovePlayerIDs(ids...)
return muo return muo
} }
// RemovePlayers removes "players" edges to Player entities. // RemovePlayers removes "players" edges to Player entities.
func (muo *MatchUpdateOne) RemovePlayers(p ...*Player) *MatchUpdateOne { func (muo *MatchUpdateOne) RemovePlayers(p ...*Player) *MatchUpdateOne {
ids := make([]int, len(p)) ids := make([]uint64, len(p))
for i := range p { for i := range p {
ids[i] = p[i].ID ids[i] = p[i].ID
} }
@@ -940,7 +940,7 @@ func (muo *MatchUpdateOne) sqlSave(ctx context.Context) (_node *Match, err error
Table: match.Table, Table: match.Table,
Columns: match.Columns, Columns: match.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -1169,7 +1169,7 @@ func (muo *MatchUpdateOne) sqlSave(ctx context.Context) (_node *Match, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -1185,7 +1185,7 @@ func (muo *MatchUpdateOne) sqlSave(ctx context.Context) (_node *Match, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -1204,7 +1204,7 @@ func (muo *MatchUpdateOne) sqlSave(ctx context.Context) (_node *Match, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },

View File

@@ -10,8 +10,7 @@ import (
var ( var (
// MatchesColumns holds the columns for the "matches" table. // MatchesColumns holds the columns for the "matches" table.
MatchesColumns = []*schema.Column{ MatchesColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt, Increment: true}, {Name: "id", Type: field.TypeUint64, Increment: true},
{Name: "match_id", Type: field.TypeUint64, Unique: true},
{Name: "share_code", Type: field.TypeString}, {Name: "share_code", Type: field.TypeString},
{Name: "map", Type: field.TypeString, Nullable: true}, {Name: "map", Type: field.TypeString, Nullable: true},
{Name: "date", Type: field.TypeTime}, {Name: "date", Type: field.TypeTime},
@@ -33,8 +32,7 @@ var (
} }
// PlayersColumns holds the columns for the "players" table. // PlayersColumns holds the columns for the "players" table.
PlayersColumns = []*schema.Column{ PlayersColumns = []*schema.Column{
{Name: "id", Type: field.TypeInt, Increment: true}, {Name: "id", Type: field.TypeUint64, Increment: true},
{Name: "steamid", Type: field.TypeUint64, Unique: true},
{Name: "name", Type: field.TypeString, Nullable: true}, {Name: "name", Type: field.TypeString, Nullable: true},
{Name: "avatar_url", Type: field.TypeString, Nullable: true}, {Name: "avatar_url", Type: field.TypeString, Nullable: true},
{Name: "vanity_url", Type: field.TypeString, Nullable: true}, {Name: "vanity_url", Type: field.TypeString, Nullable: true},
@@ -63,8 +61,8 @@ var (
{Name: "mvp", Type: field.TypeInt}, {Name: "mvp", Type: field.TypeInt},
{Name: "score", Type: field.TypeInt}, {Name: "score", Type: field.TypeInt},
{Name: "extended", Type: field.TypeJSON, Nullable: true}, {Name: "extended", Type: field.TypeJSON, Nullable: true},
{Name: "match_stats", Type: field.TypeInt, Nullable: true}, {Name: "match_stats", Type: field.TypeUint64, Nullable: true},
{Name: "player_stats", Type: field.TypeInt, Nullable: true}, {Name: "player_stats", Type: field.TypeUint64, Nullable: true},
} }
// StatsTable holds the schema information for the "stats" table. // StatsTable holds the schema information for the "stats" table.
StatsTable = &schema.Table{ StatsTable = &schema.Table{
@@ -88,8 +86,8 @@ var (
} }
// PlayerMatchesColumns holds the columns for the "player_matches" table. // PlayerMatchesColumns holds the columns for the "player_matches" table.
PlayerMatchesColumns = []*schema.Column{ PlayerMatchesColumns = []*schema.Column{
{Name: "player_id", Type: field.TypeInt}, {Name: "player_id", Type: field.TypeUint64},
{Name: "match_id", Type: field.TypeInt}, {Name: "match_id", Type: field.TypeUint64},
} }
// PlayerMatchesTable holds the schema information for the "player_matches" table. // PlayerMatchesTable holds the schema information for the "player_matches" table.
PlayerMatchesTable = &schema.Table{ PlayerMatchesTable = &schema.Table{

View File

@@ -34,9 +34,7 @@ type MatchMutation struct {
config config
op Op op Op
typ string typ string
id *int id *uint64
match_id *uint64
addmatch_id *uint64
share_code *string share_code *string
_map *string _map *string
date *time.Time date *time.Time
@@ -64,8 +62,8 @@ type MatchMutation struct {
stats map[int]struct{} stats map[int]struct{}
removedstats map[int]struct{} removedstats map[int]struct{}
clearedstats bool clearedstats bool
players map[int]struct{} players map[uint64]struct{}
removedplayers map[int]struct{} removedplayers map[uint64]struct{}
clearedplayers bool clearedplayers bool
done bool done bool
oldValue func(context.Context) (*Match, error) oldValue func(context.Context) (*Match, error)
@@ -92,7 +90,7 @@ func newMatchMutation(c config, op Op, opts ...matchOption) *MatchMutation {
} }
// withMatchID sets the ID field of the mutation. // withMatchID sets the ID field of the mutation.
func withMatchID(id int) matchOption { func withMatchID(id uint64) matchOption {
return func(m *MatchMutation) { return func(m *MatchMutation) {
var ( var (
err error err error
@@ -142,71 +140,21 @@ func (m MatchMutation) Tx() (*Tx, error) {
return tx, nil return tx, nil
} }
// SetID sets the value of the id field. Note that this
// operation is only accepted on creation of Match entities.
func (m *MatchMutation) SetID(id uint64) {
m.id = &id
}
// ID returns the ID value in the mutation. Note that the ID is only available // ID returns the ID value in the mutation. Note that the ID is only available
// if it was provided to the builder or after it was returned from the database. // if it was provided to the builder or after it was returned from the database.
func (m *MatchMutation) ID() (id int, exists bool) { func (m *MatchMutation) ID() (id uint64, exists bool) {
if m.id == nil { if m.id == nil {
return return
} }
return *m.id, true return *m.id, true
} }
// SetMatchID sets the "match_id" field.
func (m *MatchMutation) SetMatchID(u uint64) {
m.match_id = &u
m.addmatch_id = nil
}
// MatchID returns the value of the "match_id" field in the mutation.
func (m *MatchMutation) MatchID() (r uint64, exists bool) {
v := m.match_id
if v == nil {
return
}
return *v, true
}
// OldMatchID returns the old "match_id" field's value of the Match entity.
// If the Match 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 *MatchMutation) OldMatchID(ctx context.Context) (v uint64, err error) {
if !m.op.Is(OpUpdateOne) {
return v, fmt.Errorf("OldMatchID is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, fmt.Errorf("OldMatchID requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldMatchID: %w", err)
}
return oldValue.MatchID, nil
}
// AddMatchID adds u to the "match_id" field.
func (m *MatchMutation) AddMatchID(u uint64) {
if m.addmatch_id != nil {
*m.addmatch_id += u
} else {
m.addmatch_id = &u
}
}
// AddedMatchID returns the value that was added to the "match_id" field in this mutation.
func (m *MatchMutation) AddedMatchID() (r uint64, exists bool) {
v := m.addmatch_id
if v == nil {
return
}
return *v, true
}
// ResetMatchID resets all changes to the "match_id" field.
func (m *MatchMutation) ResetMatchID() {
m.match_id = nil
m.addmatch_id = nil
}
// SetShareCode sets the "share_code" field. // SetShareCode sets the "share_code" field.
func (m *MatchMutation) SetShareCode(s string) { func (m *MatchMutation) SetShareCode(s string) {
m.share_code = &s m.share_code = &s
@@ -851,9 +799,9 @@ func (m *MatchMutation) ResetStats() {
} }
// AddPlayerIDs adds the "players" edge to the Player entity by ids. // AddPlayerIDs adds the "players" edge to the Player entity by ids.
func (m *MatchMutation) AddPlayerIDs(ids ...int) { func (m *MatchMutation) AddPlayerIDs(ids ...uint64) {
if m.players == nil { if m.players == nil {
m.players = make(map[int]struct{}) m.players = make(map[uint64]struct{})
} }
for i := range ids { for i := range ids {
m.players[ids[i]] = struct{}{} m.players[ids[i]] = struct{}{}
@@ -871,9 +819,9 @@ func (m *MatchMutation) PlayersCleared() bool {
} }
// RemovePlayerIDs removes the "players" edge to the Player entity by IDs. // RemovePlayerIDs removes the "players" edge to the Player entity by IDs.
func (m *MatchMutation) RemovePlayerIDs(ids ...int) { func (m *MatchMutation) RemovePlayerIDs(ids ...uint64) {
if m.removedplayers == nil { if m.removedplayers == nil {
m.removedplayers = make(map[int]struct{}) m.removedplayers = make(map[uint64]struct{})
} }
for i := range ids { for i := range ids {
delete(m.players, ids[i]) delete(m.players, ids[i])
@@ -882,7 +830,7 @@ func (m *MatchMutation) RemovePlayerIDs(ids ...int) {
} }
// RemovedPlayers returns the removed IDs of the "players" edge to the Player entity. // RemovedPlayers returns the removed IDs of the "players" edge to the Player entity.
func (m *MatchMutation) RemovedPlayersIDs() (ids []int) { func (m *MatchMutation) RemovedPlayersIDs() (ids []uint64) {
for id := range m.removedplayers { for id := range m.removedplayers {
ids = append(ids, id) ids = append(ids, id)
} }
@@ -890,7 +838,7 @@ func (m *MatchMutation) RemovedPlayersIDs() (ids []int) {
} }
// PlayersIDs returns the "players" edge IDs in the mutation. // PlayersIDs returns the "players" edge IDs in the mutation.
func (m *MatchMutation) PlayersIDs() (ids []int) { func (m *MatchMutation) PlayersIDs() (ids []uint64) {
for id := range m.players { for id := range m.players {
ids = append(ids, id) ids = append(ids, id)
} }
@@ -923,10 +871,7 @@ func (m *MatchMutation) 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 *MatchMutation) Fields() []string { func (m *MatchMutation) Fields() []string {
fields := make([]string, 0, 13) fields := make([]string, 0, 12)
if m.match_id != nil {
fields = append(fields, match.FieldMatchID)
}
if m.share_code != nil { if m.share_code != nil {
fields = append(fields, match.FieldShareCode) fields = append(fields, match.FieldShareCode)
} }
@@ -971,8 +916,6 @@ func (m *MatchMutation) Fields() []string {
// schema. // schema.
func (m *MatchMutation) Field(name string) (ent.Value, bool) { func (m *MatchMutation) Field(name string) (ent.Value, bool) {
switch name { switch name {
case match.FieldMatchID:
return m.MatchID()
case match.FieldShareCode: case match.FieldShareCode:
return m.ShareCode() return m.ShareCode()
case match.FieldMap: case match.FieldMap:
@@ -1006,8 +949,6 @@ func (m *MatchMutation) Field(name string) (ent.Value, bool) {
// database failed. // database failed.
func (m *MatchMutation) OldField(ctx context.Context, name string) (ent.Value, error) { func (m *MatchMutation) OldField(ctx context.Context, name string) (ent.Value, error) {
switch name { switch name {
case match.FieldMatchID:
return m.OldMatchID(ctx)
case match.FieldShareCode: case match.FieldShareCode:
return m.OldShareCode(ctx) return m.OldShareCode(ctx)
case match.FieldMap: case match.FieldMap:
@@ -1041,13 +982,6 @@ func (m *MatchMutation) OldField(ctx context.Context, name string) (ent.Value, e
// type. // type.
func (m *MatchMutation) SetField(name string, value ent.Value) error { func (m *MatchMutation) SetField(name string, value ent.Value) error {
switch name { switch name {
case match.FieldMatchID:
v, ok := value.(uint64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetMatchID(v)
return nil
case match.FieldShareCode: case match.FieldShareCode:
v, ok := value.(string) v, ok := value.(string)
if !ok { if !ok {
@@ -1146,9 +1080,6 @@ func (m *MatchMutation) SetField(name string, value ent.Value) error {
// this mutation. // this mutation.
func (m *MatchMutation) AddedFields() []string { func (m *MatchMutation) AddedFields() []string {
var fields []string var fields []string
if m.addmatch_id != nil {
fields = append(fields, match.FieldMatchID)
}
if m.addscore_team_a != nil { if m.addscore_team_a != nil {
fields = append(fields, match.FieldScoreTeamA) fields = append(fields, match.FieldScoreTeamA)
} }
@@ -1172,8 +1103,6 @@ func (m *MatchMutation) AddedFields() []string {
// was not set, or was not defined in the schema. // was not set, or was not defined in the schema.
func (m *MatchMutation) AddedField(name string) (ent.Value, bool) { func (m *MatchMutation) AddedField(name string) (ent.Value, bool) {
switch name { switch name {
case match.FieldMatchID:
return m.AddedMatchID()
case match.FieldScoreTeamA: case match.FieldScoreTeamA:
return m.AddedScoreTeamA() return m.AddedScoreTeamA()
case match.FieldScoreTeamB: case match.FieldScoreTeamB:
@@ -1193,13 +1122,6 @@ func (m *MatchMutation) AddedField(name string) (ent.Value, bool) {
// type. // type.
func (m *MatchMutation) AddField(name string, value ent.Value) error { func (m *MatchMutation) AddField(name string, value ent.Value) error {
switch name { switch name {
case match.FieldMatchID:
v, ok := value.(uint64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.AddMatchID(v)
return nil
case match.FieldScoreTeamA: case match.FieldScoreTeamA:
v, ok := value.(int) v, ok := value.(int)
if !ok { if !ok {
@@ -1283,9 +1205,6 @@ func (m *MatchMutation) ClearField(name string) error {
// It returns an error if the field is not defined in the schema. // It returns an error if the field is not defined in the schema.
func (m *MatchMutation) ResetField(name string) error { func (m *MatchMutation) ResetField(name string) error {
switch name { switch name {
case match.FieldMatchID:
m.ResetMatchID()
return nil
case match.FieldShareCode: case match.FieldShareCode:
m.ResetShareCode() m.ResetShareCode()
return nil return nil
@@ -1441,9 +1360,7 @@ type PlayerMutation struct {
config config
op Op op Op
typ string typ string
id *int id *uint64
steamid *uint64
addsteamid *uint64
name *string name *string
avatar_url *string avatar_url *string
vanity_url *string vanity_url *string
@@ -1459,8 +1376,8 @@ type PlayerMutation struct {
stats map[int]struct{} stats map[int]struct{}
removedstats map[int]struct{} removedstats map[int]struct{}
clearedstats bool clearedstats bool
matches map[int]struct{} matches map[uint64]struct{}
removedmatches map[int]struct{} removedmatches map[uint64]struct{}
clearedmatches bool clearedmatches bool
done bool done bool
oldValue func(context.Context) (*Player, error) oldValue func(context.Context) (*Player, error)
@@ -1487,7 +1404,7 @@ func newPlayerMutation(c config, op Op, opts ...playerOption) *PlayerMutation {
} }
// withPlayerID sets the ID field of the mutation. // withPlayerID sets the ID field of the mutation.
func withPlayerID(id int) playerOption { func withPlayerID(id uint64) playerOption {
return func(m *PlayerMutation) { return func(m *PlayerMutation) {
var ( var (
err error err error
@@ -1537,71 +1454,21 @@ func (m PlayerMutation) Tx() (*Tx, error) {
return tx, nil return tx, nil
} }
// SetID sets the value of the id field. Note that this
// operation is only accepted on creation of Player entities.
func (m *PlayerMutation) SetID(id uint64) {
m.id = &id
}
// ID returns the ID value in the mutation. Note that the ID is only available // ID returns the ID value in the mutation. Note that the ID is only available
// if it was provided to the builder or after it was returned from the database. // if it was provided to the builder or after it was returned from the database.
func (m *PlayerMutation) ID() (id int, exists bool) { func (m *PlayerMutation) ID() (id uint64, exists bool) {
if m.id == nil { if m.id == nil {
return return
} }
return *m.id, true return *m.id, true
} }
// SetSteamid sets the "steamid" field.
func (m *PlayerMutation) SetSteamid(u uint64) {
m.steamid = &u
m.addsteamid = nil
}
// Steamid returns the value of the "steamid" field in the mutation.
func (m *PlayerMutation) Steamid() (r uint64, exists bool) {
v := m.steamid
if v == nil {
return
}
return *v, true
}
// OldSteamid returns the old "steamid" field's value of the Player entity.
// If the Player 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 *PlayerMutation) OldSteamid(ctx context.Context) (v uint64, err error) {
if !m.op.Is(OpUpdateOne) {
return v, fmt.Errorf("OldSteamid is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, fmt.Errorf("OldSteamid requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldSteamid: %w", err)
}
return oldValue.Steamid, nil
}
// AddSteamid adds u to the "steamid" field.
func (m *PlayerMutation) AddSteamid(u uint64) {
if m.addsteamid != nil {
*m.addsteamid += u
} else {
m.addsteamid = &u
}
}
// AddedSteamid returns the value that was added to the "steamid" field in this mutation.
func (m *PlayerMutation) AddedSteamid() (r uint64, exists bool) {
v := m.addsteamid
if v == nil {
return
}
return *v, true
}
// ResetSteamid resets all changes to the "steamid" field.
func (m *PlayerMutation) ResetSteamid() {
m.steamid = nil
m.addsteamid = nil
}
// SetName sets the "name" field. // SetName sets the "name" field.
func (m *PlayerMutation) SetName(s string) { func (m *PlayerMutation) SetName(s string) {
m.name = &s m.name = &s
@@ -2142,9 +2009,9 @@ func (m *PlayerMutation) ResetStats() {
} }
// AddMatchIDs adds the "matches" edge to the Match entity by ids. // AddMatchIDs adds the "matches" edge to the Match entity by ids.
func (m *PlayerMutation) AddMatchIDs(ids ...int) { func (m *PlayerMutation) AddMatchIDs(ids ...uint64) {
if m.matches == nil { if m.matches == nil {
m.matches = make(map[int]struct{}) m.matches = make(map[uint64]struct{})
} }
for i := range ids { for i := range ids {
m.matches[ids[i]] = struct{}{} m.matches[ids[i]] = struct{}{}
@@ -2162,9 +2029,9 @@ func (m *PlayerMutation) MatchesCleared() bool {
} }
// RemoveMatchIDs removes the "matches" edge to the Match entity by IDs. // RemoveMatchIDs removes the "matches" edge to the Match entity by IDs.
func (m *PlayerMutation) RemoveMatchIDs(ids ...int) { func (m *PlayerMutation) RemoveMatchIDs(ids ...uint64) {
if m.removedmatches == nil { if m.removedmatches == nil {
m.removedmatches = make(map[int]struct{}) m.removedmatches = make(map[uint64]struct{})
} }
for i := range ids { for i := range ids {
delete(m.matches, ids[i]) delete(m.matches, ids[i])
@@ -2173,7 +2040,7 @@ func (m *PlayerMutation) RemoveMatchIDs(ids ...int) {
} }
// RemovedMatches returns the removed IDs of the "matches" edge to the Match entity. // RemovedMatches returns the removed IDs of the "matches" edge to the Match entity.
func (m *PlayerMutation) RemovedMatchesIDs() (ids []int) { func (m *PlayerMutation) RemovedMatchesIDs() (ids []uint64) {
for id := range m.removedmatches { for id := range m.removedmatches {
ids = append(ids, id) ids = append(ids, id)
} }
@@ -2181,7 +2048,7 @@ func (m *PlayerMutation) RemovedMatchesIDs() (ids []int) {
} }
// MatchesIDs returns the "matches" edge IDs in the mutation. // MatchesIDs returns the "matches" edge IDs in the mutation.
func (m *PlayerMutation) MatchesIDs() (ids []int) { func (m *PlayerMutation) MatchesIDs() (ids []uint64) {
for id := range m.matches { for id := range m.matches {
ids = append(ids, id) ids = append(ids, id)
} }
@@ -2214,10 +2081,7 @@ func (m *PlayerMutation) 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 *PlayerMutation) Fields() []string { func (m *PlayerMutation) Fields() []string {
fields := make([]string, 0, 11) fields := make([]string, 0, 10)
if m.steamid != nil {
fields = append(fields, player.FieldSteamid)
}
if m.name != nil { if m.name != nil {
fields = append(fields, player.FieldName) fields = append(fields, player.FieldName)
} }
@@ -2256,8 +2120,6 @@ func (m *PlayerMutation) Fields() []string {
// schema. // schema.
func (m *PlayerMutation) Field(name string) (ent.Value, bool) { func (m *PlayerMutation) Field(name string) (ent.Value, bool) {
switch name { switch name {
case player.FieldSteamid:
return m.Steamid()
case player.FieldName: case player.FieldName:
return m.Name() return m.Name()
case player.FieldAvatarURL: case player.FieldAvatarURL:
@@ -2287,8 +2149,6 @@ func (m *PlayerMutation) Field(name string) (ent.Value, bool) {
// database failed. // database failed.
func (m *PlayerMutation) OldField(ctx context.Context, name string) (ent.Value, error) { func (m *PlayerMutation) OldField(ctx context.Context, name string) (ent.Value, error) {
switch name { switch name {
case player.FieldSteamid:
return m.OldSteamid(ctx)
case player.FieldName: case player.FieldName:
return m.OldName(ctx) return m.OldName(ctx)
case player.FieldAvatarURL: case player.FieldAvatarURL:
@@ -2318,13 +2178,6 @@ func (m *PlayerMutation) OldField(ctx context.Context, name string) (ent.Value,
// type. // type.
func (m *PlayerMutation) SetField(name string, value ent.Value) error { func (m *PlayerMutation) SetField(name string, value ent.Value) error {
switch name { switch name {
case player.FieldSteamid:
v, ok := value.(uint64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetSteamid(v)
return nil
case player.FieldName: case player.FieldName:
v, ok := value.(string) v, ok := value.(string)
if !ok { if !ok {
@@ -2403,9 +2256,6 @@ func (m *PlayerMutation) SetField(name string, value ent.Value) error {
// this mutation. // this mutation.
func (m *PlayerMutation) AddedFields() []string { func (m *PlayerMutation) AddedFields() []string {
var fields []string var fields []string
if m.addsteamid != nil {
fields = append(fields, player.FieldSteamid)
}
if m.addvac_count != nil { if m.addvac_count != nil {
fields = append(fields, player.FieldVacCount) fields = append(fields, player.FieldVacCount)
} }
@@ -2417,8 +2267,6 @@ func (m *PlayerMutation) AddedFields() []string {
// was not set, or was not defined in the schema. // was not set, or was not defined in the schema.
func (m *PlayerMutation) AddedField(name string) (ent.Value, bool) { func (m *PlayerMutation) AddedField(name string) (ent.Value, bool) {
switch name { switch name {
case player.FieldSteamid:
return m.AddedSteamid()
case player.FieldVacCount: case player.FieldVacCount:
return m.AddedVacCount() return m.AddedVacCount()
} }
@@ -2430,13 +2278,6 @@ func (m *PlayerMutation) AddedField(name string) (ent.Value, bool) {
// type. // type.
func (m *PlayerMutation) AddField(name string, value ent.Value) error { func (m *PlayerMutation) AddField(name string, value ent.Value) error {
switch name { switch name {
case player.FieldSteamid:
v, ok := value.(uint64)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.AddSteamid(v)
return nil
case player.FieldVacCount: case player.FieldVacCount:
v, ok := value.(int) v, ok := value.(int)
if !ok { if !ok {
@@ -2522,9 +2363,6 @@ func (m *PlayerMutation) ClearField(name string) error {
// It returns an error if the field is not defined in the schema. // It returns an error if the field is not defined in the schema.
func (m *PlayerMutation) ResetField(name string) error { func (m *PlayerMutation) ResetField(name string) error {
switch name { switch name {
case player.FieldSteamid:
m.ResetSteamid()
return nil
case player.FieldName: case player.FieldName:
m.ResetName() m.ResetName()
return nil return nil
@@ -2738,9 +2576,9 @@ type StatsMutation struct {
} "json:\"flash,omitempty\"" } "json:\"flash,omitempty\""
} }
clearedFields map[string]struct{} clearedFields map[string]struct{}
matches *int matches *uint64
clearedmatches bool clearedmatches bool
players *int players *uint64
clearedplayers bool clearedplayers bool
done bool done bool
oldValue func(context.Context) (*Stats, error) oldValue func(context.Context) (*Stats, error)
@@ -3409,7 +3247,7 @@ func (m *StatsMutation) ResetExtended() {
} }
// SetMatchesID sets the "matches" edge to the Match entity by id. // SetMatchesID sets the "matches" edge to the Match entity by id.
func (m *StatsMutation) SetMatchesID(id int) { func (m *StatsMutation) SetMatchesID(id uint64) {
m.matches = &id m.matches = &id
} }
@@ -3424,7 +3262,7 @@ func (m *StatsMutation) MatchesCleared() bool {
} }
// MatchesID returns the "matches" edge ID in the mutation. // MatchesID returns the "matches" edge ID in the mutation.
func (m *StatsMutation) MatchesID() (id int, exists bool) { func (m *StatsMutation) MatchesID() (id uint64, exists bool) {
if m.matches != nil { if m.matches != nil {
return *m.matches, true return *m.matches, true
} }
@@ -3434,7 +3272,7 @@ func (m *StatsMutation) MatchesID() (id int, exists bool) {
// MatchesIDs returns the "matches" edge IDs in the mutation. // MatchesIDs returns the "matches" edge IDs in the mutation.
// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use
// MatchesID instead. It exists only for internal usage by the builders. // MatchesID instead. It exists only for internal usage by the builders.
func (m *StatsMutation) MatchesIDs() (ids []int) { func (m *StatsMutation) MatchesIDs() (ids []uint64) {
if id := m.matches; id != nil { if id := m.matches; id != nil {
ids = append(ids, *id) ids = append(ids, *id)
} }
@@ -3448,7 +3286,7 @@ func (m *StatsMutation) ResetMatches() {
} }
// SetPlayersID sets the "players" edge to the Player entity by id. // SetPlayersID sets the "players" edge to the Player entity by id.
func (m *StatsMutation) SetPlayersID(id int) { func (m *StatsMutation) SetPlayersID(id uint64) {
m.players = &id m.players = &id
} }
@@ -3463,7 +3301,7 @@ func (m *StatsMutation) PlayersCleared() bool {
} }
// PlayersID returns the "players" edge ID in the mutation. // PlayersID returns the "players" edge ID in the mutation.
func (m *StatsMutation) PlayersID() (id int, exists bool) { func (m *StatsMutation) PlayersID() (id uint64, exists bool) {
if m.players != nil { if m.players != nil {
return *m.players, true return *m.players, true
} }
@@ -3473,7 +3311,7 @@ func (m *StatsMutation) PlayersID() (id int, exists bool) {
// PlayersIDs returns the "players" edge IDs in the mutation. // PlayersIDs returns the "players" edge IDs in the mutation.
// Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use // Note that IDs always returns len(IDs) <= 1 for unique edges, and you should use
// PlayersID instead. It exists only for internal usage by the builders. // PlayersID instead. It exists only for internal usage by the builders.
func (m *StatsMutation) PlayersIDs() (ids []int) { func (m *StatsMutation) PlayersIDs() (ids []uint64) {
if id := m.players; id != nil { if id := m.players; id != nil {
ids = append(ids, *id) ids = append(ids, *id)
} }

View File

@@ -15,9 +15,7 @@ import (
type Player struct { type Player struct {
config `json:"-"` config `json:"-"`
// ID of the ent. // ID of the ent.
ID int `json:"id,omitempty"` ID uint64 `json:"steamid,string"`
// Steamid holds the value of the "steamid" field.
Steamid uint64 `json:",string"`
// Name holds the value of the "name" field. // Name holds the value of the "name" field.
Name string `json:"name,omitempty"` Name string `json:"name,omitempty"`
// AvatarURL holds the value of the "avatar_url" field. // AvatarURL holds the value of the "avatar_url" field.
@@ -79,7 +77,7 @@ func (*Player) scanValues(columns []string) ([]interface{}, error) {
switch columns[i] { switch columns[i] {
case player.FieldVac: case player.FieldVac:
values[i] = new(sql.NullBool) values[i] = new(sql.NullBool)
case player.FieldID, player.FieldSteamid, player.FieldVacCount: case player.FieldID, player.FieldVacCount:
values[i] = new(sql.NullInt64) values[i] = new(sql.NullInt64)
case player.FieldName, player.FieldAvatarURL, player.FieldVanityURL, player.FieldVanityURLReal, player.FieldAuthCode: case player.FieldName, player.FieldAvatarURL, player.FieldVanityURL, player.FieldVanityURLReal, player.FieldAuthCode:
values[i] = new(sql.NullString) values[i] = new(sql.NullString)
@@ -105,13 +103,7 @@ func (pl *Player) assignValues(columns []string, values []interface{}) error {
if !ok { if !ok {
return fmt.Errorf("unexpected type %T for field id", value) return fmt.Errorf("unexpected type %T for field id", value)
} }
pl.ID = int(value.Int64) pl.ID = uint64(value.Int64)
case player.FieldSteamid:
if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for field steamid", values[i])
} else if value.Valid {
pl.Steamid = uint64(value.Int64)
}
case player.FieldName: case player.FieldName:
if value, ok := values[i].(*sql.NullString); !ok { if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field name", values[i]) return fmt.Errorf("unexpected type %T for field name", values[i])
@@ -210,8 +202,6 @@ func (pl *Player) String() string {
var builder strings.Builder var builder strings.Builder
builder.WriteString("Player(") builder.WriteString("Player(")
builder.WriteString(fmt.Sprintf("id=%v", pl.ID)) builder.WriteString(fmt.Sprintf("id=%v", pl.ID))
builder.WriteString(", steamid=")
builder.WriteString(fmt.Sprintf("%v", pl.Steamid))
builder.WriteString(", name=") builder.WriteString(", name=")
builder.WriteString(pl.Name) builder.WriteString(pl.Name)
builder.WriteString(", avatar_url=") builder.WriteString(", avatar_url=")

View File

@@ -11,8 +11,6 @@ const (
Label = "player" Label = "player"
// FieldID holds the string denoting the id field in the database. // FieldID holds the string denoting the id field in the database.
FieldID = "id" FieldID = "id"
// FieldSteamid holds the string denoting the steamid field in the database.
FieldSteamid = "steamid"
// FieldName holds the string denoting the name field in the database. // FieldName holds the string denoting the name field in the database.
FieldName = "name" FieldName = "name"
// FieldAvatarURL holds the string denoting the avatar_url field in the database. // FieldAvatarURL holds the string denoting the avatar_url field in the database.
@@ -56,7 +54,6 @@ const (
// Columns holds all SQL columns for player fields. // Columns holds all SQL columns for player fields.
var Columns = []string{ var Columns = []string{
FieldID, FieldID,
FieldSteamid,
FieldName, FieldName,
FieldAvatarURL, FieldAvatarURL,
FieldVanityURL, FieldVanityURL,

View File

@@ -11,28 +11,28 @@ import (
) )
// ID filters vertices based on their ID field. // ID filters vertices based on their ID field.
func ID(id int) predicate.Player { func ID(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldID), id)) s.Where(sql.EQ(s.C(FieldID), id))
}) })
} }
// IDEQ applies the EQ predicate on the ID field. // IDEQ applies the EQ predicate on the ID field.
func IDEQ(id int) predicate.Player { func IDEQ(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldID), id)) s.Where(sql.EQ(s.C(FieldID), id))
}) })
} }
// IDNEQ applies the NEQ predicate on the ID field. // IDNEQ applies the NEQ predicate on the ID field.
func IDNEQ(id int) predicate.Player { func IDNEQ(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.NEQ(s.C(FieldID), id)) s.Where(sql.NEQ(s.C(FieldID), id))
}) })
} }
// IDIn applies the In predicate on the ID field. // IDIn applies the In predicate on the ID field.
func IDIn(ids ...int) predicate.Player { func IDIn(ids ...uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants, // if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy. // since we can't apply "IN ()". This will make this predicate falsy.
@@ -49,7 +49,7 @@ func IDIn(ids ...int) predicate.Player {
} }
// IDNotIn applies the NotIn predicate on the ID field. // IDNotIn applies the NotIn predicate on the ID field.
func IDNotIn(ids ...int) predicate.Player { func IDNotIn(ids ...uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants, // if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy. // since we can't apply "IN ()". This will make this predicate falsy.
@@ -66,40 +66,33 @@ func IDNotIn(ids ...int) predicate.Player {
} }
// IDGT applies the GT predicate on the ID field. // IDGT applies the GT predicate on the ID field.
func IDGT(id int) predicate.Player { func IDGT(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.GT(s.C(FieldID), id)) s.Where(sql.GT(s.C(FieldID), id))
}) })
} }
// IDGTE applies the GTE predicate on the ID field. // IDGTE applies the GTE predicate on the ID field.
func IDGTE(id int) predicate.Player { func IDGTE(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.GTE(s.C(FieldID), id)) s.Where(sql.GTE(s.C(FieldID), id))
}) })
} }
// IDLT applies the LT predicate on the ID field. // IDLT applies the LT predicate on the ID field.
func IDLT(id int) predicate.Player { func IDLT(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.LT(s.C(FieldID), id)) s.Where(sql.LT(s.C(FieldID), id))
}) })
} }
// IDLTE applies the LTE predicate on the ID field. // IDLTE applies the LTE predicate on the ID field.
func IDLTE(id int) predicate.Player { func IDLTE(id uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
s.Where(sql.LTE(s.C(FieldID), id)) s.Where(sql.LTE(s.C(FieldID), id))
}) })
} }
// Steamid applies equality check predicate on the "steamid" field. It's identical to SteamidEQ.
func Steamid(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldSteamid), v))
})
}
// Name applies equality check predicate on the "name" field. It's identical to NameEQ. // Name applies equality check predicate on the "name" field. It's identical to NameEQ.
func Name(v string) predicate.Player { func Name(v string) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {
@@ -170,82 +163,6 @@ func AuthCode(v string) predicate.Player {
}) })
} }
// SteamidEQ applies the EQ predicate on the "steamid" field.
func SteamidEQ(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.EQ(s.C(FieldSteamid), v))
})
}
// SteamidNEQ applies the NEQ predicate on the "steamid" field.
func SteamidNEQ(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.NEQ(s.C(FieldSteamid), v))
})
}
// SteamidIn applies the In predicate on the "steamid" field.
func SteamidIn(vs ...uint64) predicate.Player {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.Player(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.In(s.C(FieldSteamid), v...))
})
}
// SteamidNotIn applies the NotIn predicate on the "steamid" field.
func SteamidNotIn(vs ...uint64) predicate.Player {
v := make([]interface{}, len(vs))
for i := range v {
v[i] = vs[i]
}
return predicate.Player(func(s *sql.Selector) {
// if not arguments were provided, append the FALSE constants,
// since we can't apply "IN ()". This will make this predicate falsy.
if len(v) == 0 {
s.Where(sql.False())
return
}
s.Where(sql.NotIn(s.C(FieldSteamid), v...))
})
}
// SteamidGT applies the GT predicate on the "steamid" field.
func SteamidGT(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.GT(s.C(FieldSteamid), v))
})
}
// SteamidGTE applies the GTE predicate on the "steamid" field.
func SteamidGTE(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.GTE(s.C(FieldSteamid), v))
})
}
// SteamidLT applies the LT predicate on the "steamid" field.
func SteamidLT(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.LT(s.C(FieldSteamid), v))
})
}
// SteamidLTE applies the LTE predicate on the "steamid" field.
func SteamidLTE(v uint64) predicate.Player {
return predicate.Player(func(s *sql.Selector) {
s.Where(sql.LTE(s.C(FieldSteamid), v))
})
}
// NameEQ applies the EQ predicate on the "name" field. // NameEQ applies the EQ predicate on the "name" field.
func NameEQ(v string) predicate.Player { func NameEQ(v string) predicate.Player {
return predicate.Player(func(s *sql.Selector) { return predicate.Player(func(s *sql.Selector) {

View File

@@ -22,12 +22,6 @@ type PlayerCreate struct {
hooks []Hook hooks []Hook
} }
// SetSteamid sets the "steamid" field.
func (pc *PlayerCreate) SetSteamid(u uint64) *PlayerCreate {
pc.mutation.SetSteamid(u)
return pc
}
// SetName sets the "name" field. // SetName sets the "name" field.
func (pc *PlayerCreate) SetName(s string) *PlayerCreate { func (pc *PlayerCreate) SetName(s string) *PlayerCreate {
pc.mutation.SetName(s) pc.mutation.SetName(s)
@@ -168,6 +162,12 @@ func (pc *PlayerCreate) SetNillableAuthCode(s *string) *PlayerCreate {
return pc return pc
} }
// SetID sets the "id" field.
func (pc *PlayerCreate) SetID(u uint64) *PlayerCreate {
pc.mutation.SetID(u)
return pc
}
// AddStatIDs adds the "stats" edge to the Stats entity by IDs. // AddStatIDs adds the "stats" edge to the Stats entity by IDs.
func (pc *PlayerCreate) AddStatIDs(ids ...int) *PlayerCreate { func (pc *PlayerCreate) AddStatIDs(ids ...int) *PlayerCreate {
pc.mutation.AddStatIDs(ids...) pc.mutation.AddStatIDs(ids...)
@@ -184,14 +184,14 @@ func (pc *PlayerCreate) AddStats(s ...*Stats) *PlayerCreate {
} }
// AddMatchIDs adds the "matches" edge to the Match entity by IDs. // AddMatchIDs adds the "matches" edge to the Match entity by IDs.
func (pc *PlayerCreate) AddMatchIDs(ids ...int) *PlayerCreate { func (pc *PlayerCreate) AddMatchIDs(ids ...uint64) *PlayerCreate {
pc.mutation.AddMatchIDs(ids...) pc.mutation.AddMatchIDs(ids...)
return pc return pc
} }
// AddMatches adds the "matches" edges to the Match entity. // AddMatches adds the "matches" edges to the Match entity.
func (pc *PlayerCreate) AddMatches(m ...*Match) *PlayerCreate { func (pc *PlayerCreate) AddMatches(m ...*Match) *PlayerCreate {
ids := make([]int, len(m)) ids := make([]uint64, len(m))
for i := range m { for i := range m {
ids[i] = m[i].ID ids[i] = m[i].ID
} }
@@ -281,9 +281,6 @@ func (pc *PlayerCreate) defaults() {
// check runs all checks and user-defined validators on the builder. // check runs all checks and user-defined validators on the builder.
func (pc *PlayerCreate) check() error { func (pc *PlayerCreate) check() error {
if _, ok := pc.mutation.Steamid(); !ok {
return &ValidationError{Name: "steamid", err: errors.New(`ent: missing required field "steamid"`)}
}
if _, ok := pc.mutation.Vac(); !ok { if _, ok := pc.mutation.Vac(); !ok {
return &ValidationError{Name: "vac", err: errors.New(`ent: missing required field "vac"`)} return &ValidationError{Name: "vac", err: errors.New(`ent: missing required field "vac"`)}
} }
@@ -301,8 +298,10 @@ func (pc *PlayerCreate) sqlSave(ctx context.Context) (*Player, error) {
} }
return nil, err return nil, err
} }
if _spec.ID.Value != _node.ID {
id := _spec.ID.Value.(int64) id := _spec.ID.Value.(int64)
_node.ID = int(id) _node.ID = uint64(id)
}
return _node, nil return _node, nil
} }
@@ -312,18 +311,14 @@ func (pc *PlayerCreate) createSpec() (*Player, *sqlgraph.CreateSpec) {
_spec = &sqlgraph.CreateSpec{ _spec = &sqlgraph.CreateSpec{
Table: player.Table, Table: player.Table,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
} }
) )
if value, ok := pc.mutation.Steamid(); ok { if id, ok := pc.mutation.ID(); ok {
_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ _node.ID = id
Type: field.TypeUint64, _spec.ID.Value = id
Value: value,
Column: player.FieldSteamid,
})
_node.Steamid = value
} }
if value, ok := pc.mutation.Name(); ok { if value, ok := pc.mutation.Name(); ok {
_spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{ _spec.Fields = append(_spec.Fields, &sqlgraph.FieldSpec{
@@ -433,7 +428,7 @@ func (pc *PlayerCreate) createSpec() (*Player, *sqlgraph.CreateSpec) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -488,9 +483,9 @@ func (pcb *PlayerCreateBulk) Save(ctx context.Context) ([]*Player, error) {
} }
mutation.id = &nodes[i].ID mutation.id = &nodes[i].ID
mutation.done = true mutation.done = true
if specs[i].ID.Value != nil { if specs[i].ID.Value != nil && nodes[i].ID == 0 {
id := specs[i].ID.Value.(int64) id := specs[i].ID.Value.(int64)
nodes[i].ID = int(id) nodes[i].ID = uint64(id)
} }
return nodes[i], nil return nodes[i], nil
}) })

View File

@@ -72,7 +72,7 @@ func (pd *PlayerDelete) sqlExec(ctx context.Context) (int, error) {
Node: &sqlgraph.NodeSpec{ Node: &sqlgraph.NodeSpec{
Table: player.Table, Table: player.Table,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },

View File

@@ -30,6 +30,7 @@ type PlayerQuery struct {
// eager-loading edges. // eager-loading edges.
withStats *StatsQuery withStats *StatsQuery
withMatches *MatchQuery withMatches *MatchQuery
modifiers []func(s *sql.Selector)
// intermediate query (i.e. traversal path). // intermediate query (i.e. traversal path).
sql *sql.Selector sql *sql.Selector
path func(context.Context) (*sql.Selector, error) path func(context.Context) (*sql.Selector, error)
@@ -134,8 +135,8 @@ func (pq *PlayerQuery) FirstX(ctx context.Context) *Player {
// FirstID returns the first Player ID from the query. // FirstID returns the first Player ID from the query.
// Returns a *NotFoundError when no Player ID was found. // Returns a *NotFoundError when no Player ID was found.
func (pq *PlayerQuery) FirstID(ctx context.Context) (id int, err error) { func (pq *PlayerQuery) FirstID(ctx context.Context) (id uint64, err error) {
var ids []int var ids []uint64
if ids, err = pq.Limit(1).IDs(ctx); err != nil { if ids, err = pq.Limit(1).IDs(ctx); err != nil {
return return
} }
@@ -147,7 +148,7 @@ func (pq *PlayerQuery) FirstID(ctx context.Context) (id int, err error) {
} }
// FirstIDX is like FirstID, but panics if an error occurs. // FirstIDX is like FirstID, but panics if an error occurs.
func (pq *PlayerQuery) FirstIDX(ctx context.Context) int { func (pq *PlayerQuery) FirstIDX(ctx context.Context) uint64 {
id, err := pq.FirstID(ctx) id, err := pq.FirstID(ctx)
if err != nil && !IsNotFound(err) { if err != nil && !IsNotFound(err) {
panic(err) panic(err)
@@ -185,8 +186,8 @@ func (pq *PlayerQuery) OnlyX(ctx context.Context) *Player {
// OnlyID is like Only, but returns the only Player ID in the query. // OnlyID is like Only, but returns the only Player ID in the query.
// Returns a *NotSingularError when exactly one Player ID is not found. // Returns a *NotSingularError when exactly one Player ID is not found.
// Returns a *NotFoundError when no entities are found. // Returns a *NotFoundError when no entities are found.
func (pq *PlayerQuery) OnlyID(ctx context.Context) (id int, err error) { func (pq *PlayerQuery) OnlyID(ctx context.Context) (id uint64, err error) {
var ids []int var ids []uint64
if ids, err = pq.Limit(2).IDs(ctx); err != nil { if ids, err = pq.Limit(2).IDs(ctx); err != nil {
return return
} }
@@ -202,7 +203,7 @@ func (pq *PlayerQuery) OnlyID(ctx context.Context) (id int, err error) {
} }
// OnlyIDX is like OnlyID, but panics if an error occurs. // OnlyIDX is like OnlyID, but panics if an error occurs.
func (pq *PlayerQuery) OnlyIDX(ctx context.Context) int { func (pq *PlayerQuery) OnlyIDX(ctx context.Context) uint64 {
id, err := pq.OnlyID(ctx) id, err := pq.OnlyID(ctx)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -228,8 +229,8 @@ func (pq *PlayerQuery) AllX(ctx context.Context) []*Player {
} }
// IDs executes the query and returns a list of Player IDs. // IDs executes the query and returns a list of Player IDs.
func (pq *PlayerQuery) IDs(ctx context.Context) ([]int, error) { func (pq *PlayerQuery) IDs(ctx context.Context) ([]uint64, error) {
var ids []int var ids []uint64
if err := pq.Select(player.FieldID).Scan(ctx, &ids); err != nil { if err := pq.Select(player.FieldID).Scan(ctx, &ids); err != nil {
return nil, err return nil, err
} }
@@ -237,7 +238,7 @@ func (pq *PlayerQuery) IDs(ctx context.Context) ([]int, error) {
} }
// IDsX is like IDs, but panics if an error occurs. // IDsX is like IDs, but panics if an error occurs.
func (pq *PlayerQuery) IDsX(ctx context.Context) []int { func (pq *PlayerQuery) IDsX(ctx context.Context) []uint64 {
ids, err := pq.IDs(ctx) ids, err := pq.IDs(ctx)
if err != nil { if err != nil {
panic(err) panic(err)
@@ -327,12 +328,12 @@ func (pq *PlayerQuery) WithMatches(opts ...func(*MatchQuery)) *PlayerQuery {
// Example: // Example:
// //
// var v []struct { // var v []struct {
// Steamid uint64 `json:",string"` // Name string `json:"name,omitempty"`
// Count int `json:"count,omitempty"` // Count int `json:"count,omitempty"`
// } // }
// //
// client.Player.Query(). // client.Player.Query().
// GroupBy(player.FieldSteamid). // GroupBy(player.FieldName).
// Aggregate(ent.Count()). // Aggregate(ent.Count()).
// Scan(ctx, &v) // Scan(ctx, &v)
// //
@@ -354,11 +355,11 @@ func (pq *PlayerQuery) GroupBy(field string, fields ...string) *PlayerGroupBy {
// Example: // Example:
// //
// var v []struct { // var v []struct {
// Steamid uint64 `json:",string"` // Name string `json:"name,omitempty"`
// } // }
// //
// client.Player.Query(). // client.Player.Query().
// Select(player.FieldSteamid). // Select(player.FieldName).
// Scan(ctx, &v) // Scan(ctx, &v)
// //
func (pq *PlayerQuery) Select(fields ...string) *PlayerSelect { func (pq *PlayerQuery) Select(fields ...string) *PlayerSelect {
@@ -404,6 +405,9 @@ func (pq *PlayerQuery) sqlAll(ctx context.Context) ([]*Player, error) {
node.Edges.loadedTypes = loadedTypes node.Edges.loadedTypes = loadedTypes
return node.assignValues(columns, values) return node.assignValues(columns, values)
} }
if len(pq.modifiers) > 0 {
_spec.Modifiers = pq.modifiers
}
if err := sqlgraph.QueryNodes(ctx, pq.driver, _spec); err != nil { if err := sqlgraph.QueryNodes(ctx, pq.driver, _spec); err != nil {
return nil, err return nil, err
} }
@@ -413,7 +417,7 @@ func (pq *PlayerQuery) sqlAll(ctx context.Context) ([]*Player, error) {
if query := pq.withStats; query != nil { if query := pq.withStats; query != nil {
fks := make([]driver.Value, 0, len(nodes)) fks := make([]driver.Value, 0, len(nodes))
nodeids := make(map[int]*Player) nodeids := make(map[uint64]*Player)
for i := range nodes { for i := range nodes {
fks = append(fks, nodes[i].ID) fks = append(fks, nodes[i].ID)
nodeids[nodes[i].ID] = nodes[i] nodeids[nodes[i].ID] = nodes[i]
@@ -442,15 +446,15 @@ func (pq *PlayerQuery) sqlAll(ctx context.Context) ([]*Player, error) {
if query := pq.withMatches; query != nil { if query := pq.withMatches; query != nil {
fks := make([]driver.Value, 0, len(nodes)) fks := make([]driver.Value, 0, len(nodes))
ids := make(map[int]*Player, len(nodes)) ids := make(map[uint64]*Player, len(nodes))
for _, node := range nodes { for _, node := range nodes {
ids[node.ID] = node ids[node.ID] = node
fks = append(fks, node.ID) fks = append(fks, node.ID)
node.Edges.Matches = []*Match{} node.Edges.Matches = []*Match{}
} }
var ( var (
edgeids []int edgeids []uint64
edges = make(map[int][]*Player) edges = make(map[uint64][]*Player)
) )
_spec := &sqlgraph.EdgeQuerySpec{ _spec := &sqlgraph.EdgeQuerySpec{
Edge: &sqlgraph.EdgeSpec{ Edge: &sqlgraph.EdgeSpec{
@@ -473,8 +477,8 @@ func (pq *PlayerQuery) sqlAll(ctx context.Context) ([]*Player, error) {
if !ok || ein == nil { if !ok || ein == nil {
return fmt.Errorf("unexpected id value for edge-in") return fmt.Errorf("unexpected id value for edge-in")
} }
outValue := int(eout.Int64) outValue := uint64(eout.Int64)
inValue := int(ein.Int64) inValue := uint64(ein.Int64)
node, ok := ids[outValue] node, ok := ids[outValue]
if !ok { if !ok {
return fmt.Errorf("unexpected node id in edges: %v", outValue) return fmt.Errorf("unexpected node id in edges: %v", outValue)
@@ -510,6 +514,9 @@ func (pq *PlayerQuery) sqlAll(ctx context.Context) ([]*Player, error) {
func (pq *PlayerQuery) sqlCount(ctx context.Context) (int, error) { func (pq *PlayerQuery) sqlCount(ctx context.Context) (int, error) {
_spec := pq.querySpec() _spec := pq.querySpec()
if len(pq.modifiers) > 0 {
_spec.Modifiers = pq.modifiers
}
return sqlgraph.CountNodes(ctx, pq.driver, _spec) return sqlgraph.CountNodes(ctx, pq.driver, _spec)
} }
@@ -527,7 +534,7 @@ func (pq *PlayerQuery) querySpec() *sqlgraph.QuerySpec {
Table: player.Table, Table: player.Table,
Columns: player.Columns, Columns: player.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -581,6 +588,9 @@ func (pq *PlayerQuery) sqlQuery(ctx context.Context) *sql.Selector {
selector = pq.sql selector = pq.sql
selector.Select(selector.Columns(columns...)...) selector.Select(selector.Columns(columns...)...)
} }
for _, m := range pq.modifiers {
m(selector)
}
for _, p := range pq.predicates { for _, p := range pq.predicates {
p(selector) p(selector)
} }
@@ -598,6 +608,12 @@ func (pq *PlayerQuery) sqlQuery(ctx context.Context) *sql.Selector {
return selector return selector
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (pq *PlayerQuery) Modify(modifiers ...func(s *sql.Selector)) *PlayerSelect {
pq.modifiers = append(pq.modifiers, modifiers...)
return pq.Select()
}
// PlayerGroupBy is the group-by builder for Player entities. // PlayerGroupBy is the group-by builder for Player entities.
type PlayerGroupBy struct { type PlayerGroupBy struct {
config config
@@ -1087,3 +1103,9 @@ func (ps *PlayerSelect) sqlScan(ctx context.Context, v interface{}) error {
defer rows.Close() defer rows.Close()
return sql.ScanSlice(rows, v) return sql.ScanSlice(rows, v)
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (ps *PlayerSelect) Modify(modifiers ...func(s *sql.Selector)) *PlayerSelect {
ps.modifiers = append(ps.modifiers, modifiers...)
return ps
}

View File

@@ -240,14 +240,14 @@ func (pu *PlayerUpdate) AddStats(s ...*Stats) *PlayerUpdate {
} }
// AddMatchIDs adds the "matches" edge to the Match entity by IDs. // AddMatchIDs adds the "matches" edge to the Match entity by IDs.
func (pu *PlayerUpdate) AddMatchIDs(ids ...int) *PlayerUpdate { func (pu *PlayerUpdate) AddMatchIDs(ids ...uint64) *PlayerUpdate {
pu.mutation.AddMatchIDs(ids...) pu.mutation.AddMatchIDs(ids...)
return pu return pu
} }
// AddMatches adds the "matches" edges to the Match entity. // AddMatches adds the "matches" edges to the Match entity.
func (pu *PlayerUpdate) AddMatches(m ...*Match) *PlayerUpdate { func (pu *PlayerUpdate) AddMatches(m ...*Match) *PlayerUpdate {
ids := make([]int, len(m)) ids := make([]uint64, len(m))
for i := range m { for i := range m {
ids[i] = m[i].ID ids[i] = m[i].ID
} }
@@ -287,14 +287,14 @@ func (pu *PlayerUpdate) ClearMatches() *PlayerUpdate {
} }
// RemoveMatchIDs removes the "matches" edge to Match entities by IDs. // RemoveMatchIDs removes the "matches" edge to Match entities by IDs.
func (pu *PlayerUpdate) RemoveMatchIDs(ids ...int) *PlayerUpdate { func (pu *PlayerUpdate) RemoveMatchIDs(ids ...uint64) *PlayerUpdate {
pu.mutation.RemoveMatchIDs(ids...) pu.mutation.RemoveMatchIDs(ids...)
return pu return pu
} }
// RemoveMatches removes "matches" edges to Match entities. // RemoveMatches removes "matches" edges to Match entities.
func (pu *PlayerUpdate) RemoveMatches(m ...*Match) *PlayerUpdate { func (pu *PlayerUpdate) RemoveMatches(m ...*Match) *PlayerUpdate {
ids := make([]int, len(m)) ids := make([]uint64, len(m))
for i := range m { for i := range m {
ids[i] = m[i].ID ids[i] = m[i].ID
} }
@@ -361,7 +361,7 @@ func (pu *PlayerUpdate) sqlSave(ctx context.Context) (n int, err error) {
Table: player.Table, Table: player.Table,
Columns: player.Columns, Columns: player.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -561,7 +561,7 @@ func (pu *PlayerUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -577,7 +577,7 @@ func (pu *PlayerUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -596,7 +596,7 @@ func (pu *PlayerUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -836,14 +836,14 @@ func (puo *PlayerUpdateOne) AddStats(s ...*Stats) *PlayerUpdateOne {
} }
// AddMatchIDs adds the "matches" edge to the Match entity by IDs. // AddMatchIDs adds the "matches" edge to the Match entity by IDs.
func (puo *PlayerUpdateOne) AddMatchIDs(ids ...int) *PlayerUpdateOne { func (puo *PlayerUpdateOne) AddMatchIDs(ids ...uint64) *PlayerUpdateOne {
puo.mutation.AddMatchIDs(ids...) puo.mutation.AddMatchIDs(ids...)
return puo return puo
} }
// AddMatches adds the "matches" edges to the Match entity. // AddMatches adds the "matches" edges to the Match entity.
func (puo *PlayerUpdateOne) AddMatches(m ...*Match) *PlayerUpdateOne { func (puo *PlayerUpdateOne) AddMatches(m ...*Match) *PlayerUpdateOne {
ids := make([]int, len(m)) ids := make([]uint64, len(m))
for i := range m { for i := range m {
ids[i] = m[i].ID ids[i] = m[i].ID
} }
@@ -883,14 +883,14 @@ func (puo *PlayerUpdateOne) ClearMatches() *PlayerUpdateOne {
} }
// RemoveMatchIDs removes the "matches" edge to Match entities by IDs. // RemoveMatchIDs removes the "matches" edge to Match entities by IDs.
func (puo *PlayerUpdateOne) RemoveMatchIDs(ids ...int) *PlayerUpdateOne { func (puo *PlayerUpdateOne) RemoveMatchIDs(ids ...uint64) *PlayerUpdateOne {
puo.mutation.RemoveMatchIDs(ids...) puo.mutation.RemoveMatchIDs(ids...)
return puo return puo
} }
// RemoveMatches removes "matches" edges to Match entities. // RemoveMatches removes "matches" edges to Match entities.
func (puo *PlayerUpdateOne) RemoveMatches(m ...*Match) *PlayerUpdateOne { func (puo *PlayerUpdateOne) RemoveMatches(m ...*Match) *PlayerUpdateOne {
ids := make([]int, len(m)) ids := make([]uint64, len(m))
for i := range m { for i := range m {
ids[i] = m[i].ID ids[i] = m[i].ID
} }
@@ -964,7 +964,7 @@ func (puo *PlayerUpdateOne) sqlSave(ctx context.Context) (_node *Player, err err
Table: player.Table, Table: player.Table,
Columns: player.Columns, Columns: player.Columns,
ID: &sqlgraph.FieldSpec{ ID: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -1181,7 +1181,7 @@ func (puo *PlayerUpdateOne) sqlSave(ctx context.Context) (_node *Player, err err
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -1197,7 +1197,7 @@ func (puo *PlayerUpdateOne) sqlSave(ctx context.Context) (_node *Player, err err
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -1216,7 +1216,7 @@ func (puo *PlayerUpdateOne) sqlSave(ctx context.Context) (_node *Player, err err
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },

View File

@@ -14,7 +14,7 @@ type Match struct {
// Fields of the Match. // Fields of the Match.
func (Match) Fields() []ent.Field { func (Match) Fields() []ent.Field {
return []ent.Field{ return []ent.Field{
field.Uint64("match_id").Unique().Immutable().StructTag(`json:"match_id,string"`), field.Uint64("id").Unique().Immutable().StructTag(`json:"match_id,string"`),
field.String("share_code"), field.String("share_code"),
field.String("map").Optional(), field.String("map").Optional(),
field.Time("date"), field.Time("date"),

View File

@@ -15,7 +15,7 @@ type Player struct {
// Fields of the Player. // Fields of the Player.
func (Player) Fields() []ent.Field { func (Player) Fields() []ent.Field {
return []ent.Field{ return []ent.Field{
field.Uint64("steamid").Unique().Immutable().StructTag(`json:",string"`), field.Uint64("id").Unique().Immutable().StructTag(`json:"steamid,string"`),
field.String("name").Optional(), field.String("name").Optional(),
field.String("avatar_url").Optional(), field.String("avatar_url").Optional(),
field.String("vanity_url").Optional(), field.String("vanity_url").Optional(),

View File

@@ -84,8 +84,8 @@ type Stats struct {
// Edges holds the relations/edges for other nodes in the graph. // Edges holds the relations/edges for other nodes in the graph.
// The values are being populated by the StatsQuery when eager-loading is set. // The values are being populated by the StatsQuery when eager-loading is set.
Edges StatsEdges `json:"edges"` Edges StatsEdges `json:"edges"`
match_stats *int match_stats *uint64
player_stats *int player_stats *uint64
} }
// StatsEdges holds the relations/edges for other nodes in the graph. // StatsEdges holds the relations/edges for other nodes in the graph.
@@ -215,15 +215,15 @@ func (s *Stats) assignValues(columns []string, values []interface{}) error {
if value, ok := values[i].(*sql.NullInt64); !ok { if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for edge-field match_stats", value) return fmt.Errorf("unexpected type %T for edge-field match_stats", value)
} else if value.Valid { } else if value.Valid {
s.match_stats = new(int) s.match_stats = new(uint64)
*s.match_stats = int(value.Int64) *s.match_stats = uint64(value.Int64)
} }
case stats.ForeignKeys[1]: case stats.ForeignKeys[1]:
if value, ok := values[i].(*sql.NullInt64); !ok { if value, ok := values[i].(*sql.NullInt64); !ok {
return fmt.Errorf("unexpected type %T for edge-field player_stats", value) return fmt.Errorf("unexpected type %T for edge-field player_stats", value)
} else if value.Valid { } else if value.Valid {
s.player_stats = new(int) s.player_stats = new(uint64)
*s.player_stats = int(value.Int64) *s.player_stats = uint64(value.Int64)
} }
} }
} }

View File

@@ -172,13 +172,13 @@ func (sc *StatsCreate) SetNillableExtended(skkgaaaallllg *struct {
} }
// SetMatchesID sets the "matches" edge to the Match entity by ID. // SetMatchesID sets the "matches" edge to the Match entity by ID.
func (sc *StatsCreate) SetMatchesID(id int) *StatsCreate { func (sc *StatsCreate) SetMatchesID(id uint64) *StatsCreate {
sc.mutation.SetMatchesID(id) sc.mutation.SetMatchesID(id)
return sc return sc
} }
// SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil. // SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil.
func (sc *StatsCreate) SetNillableMatchesID(id *int) *StatsCreate { func (sc *StatsCreate) SetNillableMatchesID(id *uint64) *StatsCreate {
if id != nil { if id != nil {
sc = sc.SetMatchesID(*id) sc = sc.SetMatchesID(*id)
} }
@@ -191,13 +191,13 @@ func (sc *StatsCreate) SetMatches(m *Match) *StatsCreate {
} }
// SetPlayersID sets the "players" edge to the Player entity by ID. // SetPlayersID sets the "players" edge to the Player entity by ID.
func (sc *StatsCreate) SetPlayersID(id int) *StatsCreate { func (sc *StatsCreate) SetPlayersID(id uint64) *StatsCreate {
sc.mutation.SetPlayersID(id) sc.mutation.SetPlayersID(id)
return sc return sc
} }
// SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil. // SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil.
func (sc *StatsCreate) SetNillablePlayersID(id *int) *StatsCreate { func (sc *StatsCreate) SetNillablePlayersID(id *uint64) *StatsCreate {
if id != nil { if id != nil {
sc = sc.SetPlayersID(*id) sc = sc.SetPlayersID(*id)
} }
@@ -400,7 +400,7 @@ func (sc *StatsCreate) createSpec() (*Stats, *sqlgraph.CreateSpec) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -420,7 +420,7 @@ func (sc *StatsCreate) createSpec() (*Stats, *sqlgraph.CreateSpec) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },

View File

@@ -30,6 +30,7 @@ type StatsQuery struct {
withMatches *MatchQuery withMatches *MatchQuery
withPlayers *PlayerQuery withPlayers *PlayerQuery
withFKs bool withFKs bool
modifiers []func(s *sql.Selector)
// intermediate query (i.e. traversal path). // intermediate query (i.e. traversal path).
sql *sql.Selector sql *sql.Selector
path func(context.Context) (*sql.Selector, error) path func(context.Context) (*sql.Selector, error)
@@ -411,6 +412,9 @@ func (sq *StatsQuery) sqlAll(ctx context.Context) ([]*Stats, error) {
node.Edges.loadedTypes = loadedTypes node.Edges.loadedTypes = loadedTypes
return node.assignValues(columns, values) return node.assignValues(columns, values)
} }
if len(sq.modifiers) > 0 {
_spec.Modifiers = sq.modifiers
}
if err := sqlgraph.QueryNodes(ctx, sq.driver, _spec); err != nil { if err := sqlgraph.QueryNodes(ctx, sq.driver, _spec); err != nil {
return nil, err return nil, err
} }
@@ -419,8 +423,8 @@ func (sq *StatsQuery) sqlAll(ctx context.Context) ([]*Stats, error) {
} }
if query := sq.withMatches; query != nil { if query := sq.withMatches; query != nil {
ids := make([]int, 0, len(nodes)) ids := make([]uint64, 0, len(nodes))
nodeids := make(map[int][]*Stats) nodeids := make(map[uint64][]*Stats)
for i := range nodes { for i := range nodes {
if nodes[i].match_stats == nil { if nodes[i].match_stats == nil {
continue continue
@@ -448,8 +452,8 @@ func (sq *StatsQuery) sqlAll(ctx context.Context) ([]*Stats, error) {
} }
if query := sq.withPlayers; query != nil { if query := sq.withPlayers; query != nil {
ids := make([]int, 0, len(nodes)) ids := make([]uint64, 0, len(nodes))
nodeids := make(map[int][]*Stats) nodeids := make(map[uint64][]*Stats)
for i := range nodes { for i := range nodes {
if nodes[i].player_stats == nil { if nodes[i].player_stats == nil {
continue continue
@@ -481,6 +485,9 @@ func (sq *StatsQuery) sqlAll(ctx context.Context) ([]*Stats, error) {
func (sq *StatsQuery) sqlCount(ctx context.Context) (int, error) { func (sq *StatsQuery) sqlCount(ctx context.Context) (int, error) {
_spec := sq.querySpec() _spec := sq.querySpec()
if len(sq.modifiers) > 0 {
_spec.Modifiers = sq.modifiers
}
return sqlgraph.CountNodes(ctx, sq.driver, _spec) return sqlgraph.CountNodes(ctx, sq.driver, _spec)
} }
@@ -552,6 +559,9 @@ func (sq *StatsQuery) sqlQuery(ctx context.Context) *sql.Selector {
selector = sq.sql selector = sq.sql
selector.Select(selector.Columns(columns...)...) selector.Select(selector.Columns(columns...)...)
} }
for _, m := range sq.modifiers {
m(selector)
}
for _, p := range sq.predicates { for _, p := range sq.predicates {
p(selector) p(selector)
} }
@@ -569,6 +579,12 @@ func (sq *StatsQuery) sqlQuery(ctx context.Context) *sql.Selector {
return selector return selector
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (sq *StatsQuery) Modify(modifiers ...func(s *sql.Selector)) *StatsSelect {
sq.modifiers = append(sq.modifiers, modifiers...)
return sq.Select()
}
// StatsGroupBy is the group-by builder for Stats entities. // StatsGroupBy is the group-by builder for Stats entities.
type StatsGroupBy struct { type StatsGroupBy struct {
config config
@@ -1058,3 +1074,9 @@ func (ss *StatsSelect) sqlScan(ctx context.Context, v interface{}) error {
defer rows.Close() defer rows.Close()
return sql.ScanSlice(rows, v) return sql.ScanSlice(rows, v)
} }
// Modify adds a query modifier for attaching custom logic to queries.
func (ss *StatsSelect) Modify(modifiers ...func(s *sql.Selector)) *StatsSelect {
ss.modifiers = append(ss.modifiers, modifiers...)
return ss
}

View File

@@ -234,13 +234,13 @@ func (su *StatsUpdate) ClearExtended() *StatsUpdate {
} }
// SetMatchesID sets the "matches" edge to the Match entity by ID. // SetMatchesID sets the "matches" edge to the Match entity by ID.
func (su *StatsUpdate) SetMatchesID(id int) *StatsUpdate { func (su *StatsUpdate) SetMatchesID(id uint64) *StatsUpdate {
su.mutation.SetMatchesID(id) su.mutation.SetMatchesID(id)
return su return su
} }
// SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil. // SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil.
func (su *StatsUpdate) SetNillableMatchesID(id *int) *StatsUpdate { func (su *StatsUpdate) SetNillableMatchesID(id *uint64) *StatsUpdate {
if id != nil { if id != nil {
su = su.SetMatchesID(*id) su = su.SetMatchesID(*id)
} }
@@ -253,13 +253,13 @@ func (su *StatsUpdate) SetMatches(m *Match) *StatsUpdate {
} }
// SetPlayersID sets the "players" edge to the Player entity by ID. // SetPlayersID sets the "players" edge to the Player entity by ID.
func (su *StatsUpdate) SetPlayersID(id int) *StatsUpdate { func (su *StatsUpdate) SetPlayersID(id uint64) *StatsUpdate {
su.mutation.SetPlayersID(id) su.mutation.SetPlayersID(id)
return su return su
} }
// SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil. // SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil.
func (su *StatsUpdate) SetNillablePlayersID(id *int) *StatsUpdate { func (su *StatsUpdate) SetNillablePlayersID(id *uint64) *StatsUpdate {
if id != nil { if id != nil {
su = su.SetPlayersID(*id) su = su.SetPlayersID(*id)
} }
@@ -480,7 +480,7 @@ func (su *StatsUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -496,7 +496,7 @@ func (su *StatsUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -515,7 +515,7 @@ func (su *StatsUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -531,7 +531,7 @@ func (su *StatsUpdate) sqlSave(ctx context.Context) (n int, err error) {
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -766,13 +766,13 @@ func (suo *StatsUpdateOne) ClearExtended() *StatsUpdateOne {
} }
// SetMatchesID sets the "matches" edge to the Match entity by ID. // SetMatchesID sets the "matches" edge to the Match entity by ID.
func (suo *StatsUpdateOne) SetMatchesID(id int) *StatsUpdateOne { func (suo *StatsUpdateOne) SetMatchesID(id uint64) *StatsUpdateOne {
suo.mutation.SetMatchesID(id) suo.mutation.SetMatchesID(id)
return suo return suo
} }
// SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil. // SetNillableMatchesID sets the "matches" edge to the Match entity by ID if the given value is not nil.
func (suo *StatsUpdateOne) SetNillableMatchesID(id *int) *StatsUpdateOne { func (suo *StatsUpdateOne) SetNillableMatchesID(id *uint64) *StatsUpdateOne {
if id != nil { if id != nil {
suo = suo.SetMatchesID(*id) suo = suo.SetMatchesID(*id)
} }
@@ -785,13 +785,13 @@ func (suo *StatsUpdateOne) SetMatches(m *Match) *StatsUpdateOne {
} }
// SetPlayersID sets the "players" edge to the Player entity by ID. // SetPlayersID sets the "players" edge to the Player entity by ID.
func (suo *StatsUpdateOne) SetPlayersID(id int) *StatsUpdateOne { func (suo *StatsUpdateOne) SetPlayersID(id uint64) *StatsUpdateOne {
suo.mutation.SetPlayersID(id) suo.mutation.SetPlayersID(id)
return suo return suo
} }
// SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil. // SetNillablePlayersID sets the "players" edge to the Player entity by ID if the given value is not nil.
func (suo *StatsUpdateOne) SetNillablePlayersID(id *int) *StatsUpdateOne { func (suo *StatsUpdateOne) SetNillablePlayersID(id *uint64) *StatsUpdateOne {
if id != nil { if id != nil {
suo = suo.SetPlayersID(*id) suo = suo.SetPlayersID(*id)
} }
@@ -1036,7 +1036,7 @@ func (suo *StatsUpdateOne) sqlSave(ctx context.Context) (_node *Stats, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -1052,7 +1052,7 @@ func (suo *StatsUpdateOne) sqlSave(ctx context.Context) (_node *Stats, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: match.FieldID, Column: match.FieldID,
}, },
}, },
@@ -1071,7 +1071,7 @@ func (suo *StatsUpdateOne) sqlSave(ctx context.Context) (_node *Stats, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },
@@ -1087,7 +1087,7 @@ func (suo *StatsUpdateOne) sqlSave(ctx context.Context) (_node *Stats, err error
Bidi: false, Bidi: false,
Target: &sqlgraph.EdgeTarget{ Target: &sqlgraph.EdgeTarget{
IDSpec: &sqlgraph.FieldSpec{ IDSpec: &sqlgraph.FieldSpec{
Type: field.TypeInt, Type: field.TypeUint64,
Column: player.FieldID, Column: player.FieldID,
}, },
}, },

7
go.sum
View File

@@ -66,6 +66,7 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=
github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=
github.com/go-sql-driver/mysql v1.5.1-0.20200311113236-681ffa848bae/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.5.1-0.20200311113236-681ffa848bae/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@@ -180,6 +181,7 @@ github.com/markus-wa/quickhull-go/v2 v2.1.0 h1:DA2pzEzH0k5CEnlUsouRqNdD+jzNFb4DB
github.com/markus-wa/quickhull-go/v2 v2.1.0/go.mod h1:bOlBUpIzGSMMhHX0f9N8CQs0VZD4nnPeta0OocH7m4o= github.com/markus-wa/quickhull-go/v2 v2.1.0/go.mod h1:bOlBUpIzGSMMhHX0f9N8CQs0VZD4nnPeta0OocH7m4o=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU= github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU=
github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
@@ -200,6 +202,7 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -234,9 +237,11 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -297,6 +302,7 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -375,6 +381,7 @@ golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

22
main.go
View File

@@ -50,10 +50,10 @@ type PlayerResponse struct {
Tracked bool `json:"tracked"` Tracked bool `json:"tracked"`
VanityURL string `json:"vanity_url,omitempty"` VanityURL string `json:"vanity_url,omitempty"`
MatchStats struct { MatchStats struct {
Win int Win int `json:"win,omitempty"`
Tie int Tie int `json:"tie,omitempty"`
Loss int Loss int `json:"loss,omitempty"`
} `json:"match_stats"` } `json:"match_stats,omitempty"`
Matches []*MatchResponse `json:"matches,omitempty"` Matches []*MatchResponse `json:"matches,omitempty"`
} }
@@ -150,7 +150,7 @@ func getPlayer(w http.ResponseWriter, r *http.Request) {
} }
response := PlayerResponse{ response := PlayerResponse{
SteamID64: tPlayer.Steamid, SteamID64: tPlayer.ID,
Name: tPlayer.Name, Name: tPlayer.Name,
Avatar: tPlayer.AvatarURL, Avatar: tPlayer.AvatarURL,
VAC: tPlayer.Vac, VAC: tPlayer.Vac,
@@ -185,7 +185,7 @@ func getPlayer(w http.ResponseWriter, r *http.Request) {
for _, iMatch := range tMatches { for _, iMatch := range tMatches {
mResponse := &MatchResponse{ mResponse := &MatchResponse{
MatchId: iMatch.MatchID, MatchId: iMatch.ID,
ShareCode: iMatch.ShareCode, ShareCode: iMatch.ShareCode,
Map: iMatch.Map, Map: iMatch.Map,
Date: iMatch.Date, Date: iMatch.Date,
@@ -198,7 +198,7 @@ func getPlayer(w http.ResponseWriter, r *http.Request) {
} }
db.Lock.RLock() db.Lock.RLock()
tStats, err := iMatch.QueryStats().Where(stats.HasPlayersWith(player.Steamid(tPlayer.Steamid))).WithPlayers().All(context.Background()) tStats, err := iMatch.QueryStats().Where(stats.HasPlayersWith(player.ID(tPlayer.ID))).WithPlayers().All(context.Background())
db.Lock.RUnlock() db.Lock.RUnlock()
if err != nil { if err != nil {
response.Matches = append(response.Matches, mResponse) response.Matches = append(response.Matches, mResponse)
@@ -312,7 +312,7 @@ func getMatch(w http.ResponseWriter, r *http.Request) {
} }
db.Lock.RLock() db.Lock.RLock()
tMatch, err := db.Client.Match.Query().Where(match.MatchID(matchId)).Only(context.Background()) tMatch, err := db.Client.Match.Query().Where(match.ID(matchId)).Only(context.Background())
db.Lock.RUnlock() db.Lock.RUnlock()
if err != nil { if err != nil {
log.Warningf("[GM] match %d not found: %+v", matchId, err) log.Warningf("[GM] match %d not found: %+v", matchId, err)
@@ -320,7 +320,7 @@ func getMatch(w http.ResponseWriter, r *http.Request) {
} }
mResponse := &MatchResponse{ mResponse := &MatchResponse{
MatchId: tMatch.MatchID, MatchId: tMatch.ID,
ShareCode: tMatch.ShareCode, ShareCode: tMatch.ShareCode,
Map: tMatch.Map, Map: tMatch.Map,
Date: tMatch.Date, Date: tMatch.Date,
@@ -336,13 +336,13 @@ func getMatch(w http.ResponseWriter, r *http.Request) {
tStats, err := tMatch.QueryStats().WithPlayers().All(context.Background()) tStats, err := tMatch.QueryStats().WithPlayers().All(context.Background())
db.Lock.RUnlock() db.Lock.RUnlock()
if err != nil { if err != nil {
log.Errorf("[GM] can't find stats for match %d: %v", tMatch.MatchID, err) log.Errorf("[GM] can't find stats for match %d: %v", tMatch.ID, err)
} }
for _, iStats := range tStats { for _, iStats := range tStats {
sResponse := &StatsResponse{ sResponse := &StatsResponse{
Player: PlayerResponse{ Player: PlayerResponse{
SteamID64: iStats.Edges.Players.Steamid, SteamID64: iStats.Edges.Players.ID,
Name: iStats.Edges.Players.Name, Name: iStats.Edges.Players.Name,
Avatar: iStats.Edges.Players.AvatarURL, Avatar: iStats.Edges.Players.AvatarURL,
VAC: iStats.Edges.Players.Vac, VAC: iStats.Edges.Players.Vac,

View File

@@ -9,6 +9,7 @@ import (
"csgowtfd/ent/stats" "csgowtfd/ent/stats"
"encoding/json" "encoding/json"
"encoding/xml" "encoding/xml"
"entgo.io/ent/dialect/sql"
"fmt" "fmt"
"github.com/Philipp15b/go-steamapi" "github.com/Philipp15b/go-steamapi"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@@ -99,52 +100,51 @@ func SendJSON(data interface{}, w http.ResponseWriter) error {
return nil return nil
} }
func GetMatchStats(db *ent.Client, lock *sync.RWMutex, player *ent.Player) (int, int, int, error) { func GetMatchStats(db *ent.Client, lock *sync.RWMutex, dbPlayer *ent.Player) (int, int, int, error) {
var v []struct { var res []struct {
Wins int `json:"wins"` MatchResult int `json:"match_result"`
Ties int `json:"ties"` Count int `json:"count"`
Total int `json:"total"`
} }
err := player.QueryMatches().
WithStats(). lock.RLock()
Where( err := dbPlayer.QueryMatches().GroupBy(match.FieldMatchResult).Aggregate(func(s *sql.Selector) string {
match.Or( sT := sql.Table(stats.Table)
match.And( s.Join(sT).On(s.C(match.FieldID), sT.C(stats.MatchesColumn))
match.HasStatsWith(stats.TeamIDEQ(1)), s.Where(sql.And(sql.Or(sql.ColumnsEQ(match.FieldMatchResult, stats.FieldTeamID), sql.EQ(s.C(match.FieldMatchResult), 0)), sql.EQ(sT.C(stats.PlayersColumn), dbPlayer.ID)))
match.MatchResultEQ(1)), return sql.Count("*")
match.And( }).Scan(context.Background(), &res)
match.HasStatsWith(stats.TeamIDEQ(2)), lock.RUnlock()
match.MatchResultEQ(2))),
).
GroupBy(match.FieldMatchID).
Aggregate(ent.As(ent.Count(), "wins")).
Scan(context.Background(), &v)
if err != nil { if err != nil {
return 0, 0, 0, err return 0, 0, 0, err
} }
err = player.QueryMatches(). lock.RLock()
Where(match.MatchResultEQ(0)). total, err := dbPlayer.QueryMatches().Modify(func(s *sql.Selector) {
GroupBy(match.FieldMatchID). s.Select("COUNT(*)")
Aggregate(ent.As(ent.Count(), "ties")). }).Int(context.Background())
Scan(context.Background(), &v) lock.RUnlock()
if err != nil { if err != nil {
return 0, 0, 0, err return 0, 0, 0, err
} }
err = player.QueryMatches(). if len(res) < 1 {
GroupBy(match.FieldMatchID).
Aggregate(ent.As(ent.Count(), "total")).
Scan(context.Background(), &v)
if err != nil {
return 0, 0, 0, err
}
if len(v) < 1 {
return 0, 0, 0, nil return 0, 0, 0, nil
} }
var (
wins int
ties int
)
return v[0].Wins, v[0].Ties, v[0].Total - v[0].Wins - v[0].Ties, nil for _, r := range res {
switch r.MatchResult {
case 0:
ties = r.Count
case 1, 2:
wins += r.Count
}
}
return wins, ties, total - wins - ties, nil
} }
func IsAuthCodeValid(player *ent.Player, lock *sync.RWMutex, apiKey string, shareCode string, authCode string, rl ratelimit.Limiter) (bool, error) { func IsAuthCodeValid(player *ent.Player, lock *sync.RWMutex, apiKey string, shareCode string, authCode string, rl ratelimit.Limiter) (bool, error) {
@@ -158,13 +158,13 @@ func IsAuthCodeValid(player *ent.Player, lock *sync.RWMutex, apiKey string, shar
return false, err return false, err
} }
_, err := getNextShareCode(tMatch.ShareCode, apiKey, authCode, player.Steamid, rl) _, err := getNextShareCode(tMatch.ShareCode, apiKey, authCode, player.ID, rl)
if err != nil { if err != nil {
return false, err return false, err
} }
return true, nil return true, nil
} else { } else {
_, err := getNextShareCode(shareCode, apiKey, authCode, player.Steamid, rl) _, err := getNextShareCode(shareCode, apiKey, authCode, player.ID, rl)
if err != nil { if err != nil {
return false, err return false, err
} }
@@ -180,14 +180,14 @@ func GetNewShareCodesForPlayer(player *ent.Player, lock *sync.RWMutex, apiKey st
return nil, err return nil, err
} }
var rCodes []string var rCodes []string
newShareCode, err := getNextShareCode(tMatch.ShareCode, apiKey, player.AuthCode, player.Steamid, rl) newShareCode, err := getNextShareCode(tMatch.ShareCode, apiKey, player.AuthCode, player.ID, rl)
if err != nil { if err != nil {
return nil, err return nil, err
} }
for newShareCode != "n/a" { for newShareCode != "n/a" {
rCodes = append(rCodes, newShareCode) rCodes = append(rCodes, newShareCode)
newShareCode, err = getNextShareCode(rCodes[len(rCodes)-1], apiKey, player.AuthCode, player.Steamid, rl) newShareCode, err = getNextShareCode(rCodes[len(rCodes)-1], apiKey, player.AuthCode, player.ID, rl)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -278,7 +278,7 @@ func GetPlayerFromVanityURL(db *DBWithLock, id string) (*ent.Player, error) {
} }
db.Lock.Lock() db.Lock.Lock()
nPlayer, err := db.Client.Player.Create().SetSteamid(profile.SteamID64).SetVanityURL(strings.ToLower(profile.VanityURL)).SetVac(profile.VacBanned).SetAvatarURL(profile.AvatarURL).SetName(profile.ProfileName).Save(context.Background()) nPlayer, err := db.Client.Player.Create().SetID(profile.SteamID64).SetVanityURL(strings.ToLower(profile.VanityURL)).SetVac(profile.VacBanned).SetAvatarURL(profile.AvatarURL).SetName(profile.ProfileName).Save(context.Background())
db.Lock.Unlock() db.Lock.Unlock()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -289,13 +289,13 @@ func GetPlayerFromVanityURL(db *DBWithLock, id string) (*ent.Player, error) {
func GetPlayerFromSteamID64(db *DBWithLock, steamID uint64, apiKey string, rl ratelimit.Limiter) (*ent.Player, error) { func GetPlayerFromSteamID64(db *DBWithLock, steamID uint64, apiKey string, rl ratelimit.Limiter) (*ent.Player, error) {
db.Lock.RLock() db.Lock.RLock()
tPlayer, err := db.Client.Player.Query().Where(player.Steamid(steamID)).Only(context.Background()) tPlayer, err := db.Client.Player.Query().Where(player.ID(steamID)).Only(context.Background())
db.Lock.RUnlock() db.Lock.RUnlock()
if err == nil { if err == nil {
return tPlayer, nil return tPlayer, nil
} else { } else {
db.Lock.Lock() db.Lock.Lock()
nPlayer, err := db.Client.Player.Create().SetSteamid(steamID).Save(context.Background()) nPlayer, err := db.Client.Player.Create().SetID(steamID).Save(context.Background())
db.Lock.Unlock() db.Lock.Unlock()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -326,7 +326,7 @@ func GCInfoParser(channel chan *csgo.Demo, dl *csgo.DemoMatchLoader, dp *csgo.De
} }
db.Lock.RLock() db.Lock.RLock()
iMatch, err := db.Client.Match.Query().Where(match.MatchID(matchId)).Only(context.Background()) iMatch, err := db.Client.Match.Query().Where(match.ID(matchId)).Only(context.Background())
db.Lock.RUnlock() db.Lock.RUnlock()
if err != nil { if err != nil {
switch e := err.(type) { switch e := err.(type) {
@@ -365,7 +365,7 @@ func GCInfoParser(channel chan *csgo.Demo, dl *csgo.DemoMatchLoader, dp *csgo.De
db.Lock.Lock() db.Lock.Lock()
tMatch, err := db.Client.Match.Create(). tMatch, err := db.Client.Match.Create().
SetMatchID(matchZero.GetMatchid()). SetID(matchZero.GetMatchid()).
AddPlayers(players...). AddPlayers(players...).
SetDate(time.Unix(int64(matchZero.GetMatchtime()), 0).UTC()). SetDate(time.Unix(int64(matchZero.GetMatchtime()), 0).UTC()).
SetMaxRounds(int(lastRound.GetMaxRounds())). SetMaxRounds(int(lastRound.GetMaxRounds())).
@@ -435,7 +435,7 @@ func SteamProfile2XML(id string, steamID64 uint64) (*CommunityXML, error) {
} }
func UpdatePlayerFromSteam(player *ent.Player, apiKey string, lock *sync.RWMutex, rl ratelimit.Limiter) (*ent.Player, error) { func UpdatePlayerFromSteam(player *ent.Player, apiKey string, lock *sync.RWMutex, rl ratelimit.Limiter) (*ent.Player, error) {
profile, err := SteamProfile2XML("", player.Steamid) profile, err := SteamProfile2XML("", player.ID)
if err != nil { if err != nil {
return nil, err return nil, err
} }