package database import ( "database/sql" _ "embed" "strings" ) type Player struct { ID int64 `db:"id"` AuthUserID sql.NullInt64 `db:"auth_user_id"` UUID string `db:"uuid"` Username string `db:"username"` ApplicationID sql.NullInt64 `db:"application_id"` Application *Application `db:"-"` FirstSeen string `db:"first_seen"` LastSeen string `db:"last_seen"` DiscordID sql.NullString `db:"discord_id"` } func (p *Player) String() string { return p.Username } //go:embed queries/players_by_username.sql var playersByUsernameSQL string func (d *Database) PlayersByUsername(username string) (pl []*Player, err error) { return pl, d.db.Select(&pl, playersByUsernameSQL, strings.ToLower(username)) } //go:embed queries/players_by_username_application_notnull.sql var playersByUsernameApplicationNotNullSQL string func (d *Database) PlayersByUsernameApplicationNotNull(username string) (pl []*Player, err error) { return pl, d.db.Get(&pl, playersByUsernameApplicationNotNullSQL, strings.ToLower(username)) } //go:embed queries/players_by_username_application_notnull_count.sql var playersByUsernameApplicationNotNullCountSQL string func (d *Database) PlayersByUsernameApplicationNotNullCount(username string) (count int64, err error) { return count, d.db.Get(&count, playersByUsernameApplicationNotNullCountSQL, strings.ToLower(username)) } //go:embed queries/players_by_discord_isnull.sql var playersByDiscordIsNullSQL string func (d *Database) PlayersByDiscordIsNull() (pl []*Player, err error) { return pl, d.db.Select(pl, playersByDiscordIsNullSQL) } //go:embed queries/player_update_application.sql var playerUpdateApplicationSQL string func (d *Database) PlayerUpdateApplication(appID, playerID int64) error { _, err := d.db.Exec(playerUpdateApplicationSQL, appID, playerID) return err } //go:embed queries/player_update_discord_id.sql var playerUpdateDiscordIDSQL string func (d *Database) PlayerUpdateDiscordID(discordID string, playerID int64) error { _, err := d.db.Exec(playerUpdateDiscordIDSQL, discordID, playerID) return err }