postgres

package
v0.0.0-...-f6011b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var INDIANAPOLIS, _ = time.LoadLocation("America/Indiana/Indianapolis")

Functions

func BulkStarEvents

func BulkStarEvents(db *sql.DB, email string, year int, eventIds []string, overwrite bool, asGroups bool) error

func CleanupTransaction

func CleanupTransaction(err error, tx *sql.Tx)

Use as defer func() { CleanupTransaction(err, tx) }() Need to do it in an anonymous function to avoid binding err and tx

func ClearStarredEvents

func ClearStarredEvents(db *sql.DB, email string, year int) error

func DeleteParty

func DeleteParty(db *sql.DB, id int64) error

func GetConnStr

func GetConnStr() string

func GetLastUpdate

func GetLastUpdate(db *sql.DB) (time.Time, error)

func JoinParty

func JoinParty(db *sql.DB, partyId int64, email string) error

func LoadSimilarEvents

func LoadSimilarEvents(db *sql.DB, eventId string, userEmail string) ([]*events.GenconEvent, error)

func LoadStarredEvents

func LoadStarredEvents(db *sql.DB, userEmail string, year int) ([]*events.GenconEvent, error)

func LogUpdate

func LogUpdate(db *sql.DB, stats UpdateStats, success bool, errorMsg string) error

func MergeOrgs

func MergeOrgs(db *sql.DB, orgs []int64)

func NormalizeUserStarredEvents

func NormalizeUserStarredEvents(q queryable, email string, year int) error

func OpenDb

func OpenDb() (*sql.DB, error)

func RemoveMember

func RemoveMember(db *sql.DB, partyId int64, email string) error

func RenameParty

func RenameParty(db *sql.DB, id int64, name string) error

func SaveWishlistCache

func SaveWishlistCache(db *sql.DB, email string, year int, items []WishlistCacheItem) error

func UpdateDisplayName

func UpdateDisplayName(db *sql.DB, email string, displayName string) error

func UpdatePartyLeader

func UpdatePartyLeader(db *sql.DB, id int64, newLeaderEmail string) error

func UpdateWishlistConstraints

func UpdateWishlistConstraints(db *sql.DB, email string, constraints []WishlistConstraint) error

Types

type AgendaEntry

type AgendaEntry struct {
	Event *events.GenconEvent
	Tier  string
}

func LoadAgenda

func LoadAgenda(db *sql.DB, userEmail string, year int) ([]*AgendaEntry, error)

type CalendarEventCluster

type CalendarEventCluster struct {
	EventId          string
	Title            string
	StartTime        time.Time
	EndTime          time.Time
	GenconUrl        string
	PlannerUrl       string
	ShortCategory    string
	ShortDescription string
	SimilarCount     int
}

func LoadStarredEventClusters

func LoadStarredEventClusters(db *sql.DB, userEmail string, year int, starredEvents []*events.GenconEvent) ([]*CalendarEventCluster, error)

type CategorySummary

type CategorySummary struct {
	Name  string
	Code  string
	Count int
}

func LoadCategorySummary

func LoadCategorySummary(db *sql.DB, year int) ([]*CategorySummary, error)

type EventGroup

type EventGroup struct {
	Name          string
	EventId       string
	Description   string
	ShortCategory string
	GameSystem    string
	OrgGroup      string
	OrgId         int
	Count         int
	WedTickets    int
	ThursTickets  int
	FriTickets    int
	SatTickets    int
	SunTickets    int
	TotalTickets  int
}

func FindEvents

func FindEvents(db *sql.DB, query *ParsedQuery) ([]*EventGroup, error)

func LoadEventGroupsForCategory

func LoadEventGroupsForCategory(db *sql.DB, short_category string, year int) ([]*EventGroup, error)

func LoadStarredEventGroups

func LoadStarredEventGroups(db *sql.DB, userEmail string, year int) ([]*EventGroup, error)

func SearchEvents

func SearchEvents(db *sql.DB, query SearchQuery) ([]*EventGroup, error)

type Game

type Game struct {
	Name          string
	Type          string // Will be game, or expansion
	BggId         int64
	FamilyIds     []int64
	LastUpdate    time.Time
	NumRatings    int64
	AvgRatings    float64
	YearPublished int64
}

func LoadGames

func LoadGames(db *sql.DB) ([]*Game, error)

func (*Game) Upsert

func (g *Game) Upsert(db *sql.DB) error

type GameFamily

type GameFamily struct {
	Name       string
	BggId      int64
	GameIds    []int64
	LastUpdate time.Time
}

func LoadFamilies

func LoadFamilies(db *sql.DB) ([]*GameFamily, error)

func (*GameFamily) Upsert

func (gf *GameFamily) Upsert(db *sql.DB) error

type MemberInterest

type MemberInterest struct {
	Email       string `json:"email"`
	DisplayName string `json:"displayName"`
	Tier        string `json:"tier"`
}

type Organizer

type Organizer struct {
	Id        int64
	Aliases   []string
	NumEvents int64
}

func LoadAllOrgs

func LoadAllOrgs(db *sql.DB) ([]*Organizer, error)

type ParsedQuery

type ParsedQuery struct {
	// TODO(alek): make a significantly more robust query parser
	// add exact match on fields,
	TextQueries     []string
	Year            int
	DaysOfWeek      map[string]bool
	RawQuery        string
	StartBeforeHour int
	StartAfterHour  int
	EndBeforeHour   int
	EndAfterHour    int
	OrgId           int
}

type Party

type Party struct {
	Id          int64
	Name        string
	Year        int64
	LeaderEmail string
	ShortCode   string
	Members     []*User
}

A party is a group of users playing together in a given year.

func LoadParties

func LoadParties(db *sql.DB, currentUser *User) ([]*Party, error)

func LoadParty

func LoadParty(db *sql.DB, id int64) (*Party, error)

func LoadPartyByCode

func LoadPartyByCode(db *sql.DB, code string) (*Party, error)

func NewParty

func NewParty(db *sql.DB, name string, year int64, founderEmail string) (*Party, error)

type SearchQuery

type SearchQuery struct {
	Year              int
	CategoryShortCode string
	MinWedTickets     int
	MinThuTickets     int
	MinFriTickets     int
	MinSatTickets     int
	MinSunTickets     int
	RawQuery          string
	OrgId             int
}

type SharedInterestGroup

type SharedInterestGroup struct {
	ClusterId       string           `json:"clusterId"`
	RepEventId      string           `json:"repEventId"`
	AllEventIds     []string         `json:"allEventIds"`
	Title           string           `json:"title"`
	ShortCategory   string           `json:"shortCategory"`
	GameSystem      string           `json:"gameSystem"`
	TotalSessions   int              `json:"totalSessions"`
	TotalTickets    int              `json:"totalTickets"`
	MemberInterests []MemberInterest `json:"memberInterests"`
	GroupScore      int              `json:"groupScore"`
}

func LoadPartySharedInterests

func LoadPartySharedInterests(db *sql.DB, partyId int64, year int) ([]*SharedInterestGroup, error)

type StarredEvent

type StarredEvent struct {
	EventId    string
	Level      string // "group" or "event"
	Tier       string // "must_have", "very_interested", "somewhat_interested", "not_interested"
	GroupTier  string
	IsOverride bool
}

type UpdateStats

type UpdateStats struct {
	Seen      int
	Inserted  int
	Updated   int
	Deleted   int
	Unchanged int
}

func BulkUpdateEvents

func BulkUpdateEvents(tx *sql.Tx, parsedEvents []*events.GenconEvent) (UpdateStats, error)

type User

type User struct {
	Email       string
	DisplayName string
}

func LoadOrCreateUser

func LoadOrCreateUser(db *sql.DB, email string) (*User, error)

type UserStarredEvents

type UserStarredEvents struct {
	Email         string
	StarredEvents []StarredEvent
}

func GetAllStarredIds

func GetAllStarredIds(db *sql.DB, email string) (*UserStarredEvents, error)

func GetStarredIds

func GetStarredIds(db *sql.DB, email string, year int) (*UserStarredEvents, error)

func RemoveStarredEventGroup

func RemoveStarredEventGroup(db *sql.DB, email string, eventId string) (*UserStarredEvents, error)

func UpdateStarredEvent

func UpdateStarredEvent(db *sql.DB, email string, eventId string, tier string, starGroup bool, add bool) (*UserStarredEvents, error)

func UpdateStarredEventMinimal

func UpdateStarredEventMinimal(db *sql.DB, email string, eventId string, tier string, starGroup bool, add bool) (*UserStarredEvents, error)

func (*UserStarredEvents) GetTier

func (u *UserStarredEvents) GetTier(eventId string) string

type WishlistCacheItem

type WishlistCacheItem struct {
	EventId   string
	Rank      int
	Status    string
	Reasoning []string
	Score     float64
}

func GetWishlistCache

func GetWishlistCache(db *sql.DB, email string, year int) ([]WishlistCacheItem, bool, error)

type WishlistConstraint

type WishlistConstraint struct {
	DayOfWeek          int // -1 for Every Day, 0-6 for Sun-Sat
	StartHour          int
	StartMinute        int
	EndHour            int
	EndMinute          int
	MinDurationMinutes int // 0 means hard block, > 0 means flexible block
}

func GetWishlistConstraints

func GetWishlistConstraints(db *sql.DB, email string) ([]WishlistConstraint, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL