package database import ( "database/sql" _ "embed" "strings" ) type Application struct { ID int64 `db:"id"` Username string `db:"username"` Age int64 `db:"age"` PlayerType string `db:"player_type"` EverBanned bool `db:"ever_banned"` EverBannedExplanation string `db:"ever_banned_explanation"` Reference string `db:"reference"` ReadRules string `db:"read_rules"` Accepted sql.NullBool `db:"accepted"` Date string `db:"date"` } func (a *Application) String() string { return a.Username } //go:embed queries/application_by_id.sql var applicationByIDSQL string func (d *Database) ApplicationByID(id int64) (*Application, error) { var app Application return &app, d.db.Get(&app, applicationByIDSQL, id) } //go:embed queries/application_by_player_username.sql var applicationByPlayerUsernameSQL string func (d *Database) ApplicationByPlayerUsername(username string) (*Application, error) { var app Application return &app, d.db.Get(&app, applicationByPlayerUsernameSQL, strings.ToLower(username)) } //go:embed queries/applications_by_username.sql var applicationsByUsernameSQL string func (d *Database) ApplicationsByUsername(username string) (apps []*Application, err error) { return apps, d.db.Select(&apps, applicationsByUsernameSQL, strings.ToLower(username)) } //go:embed queries/application_update_accepted.sql var applicationUpdateAcceptedSQL string func (d *Database) ApplicationUpdateAccepted(accepted *bool) (*Application, error) { var app Application return &app, d.db.Get(&app, applicationUpdateAcceptedSQL, accepted) }