Documentation
¶
Index ¶
- Variables
- func BulkStarEvents(db *sql.DB, email string, year int, eventIds []string, overwrite bool, ...) error
- func CleanupTransaction(err error, tx *sql.Tx)
- func ClearStarredEvents(db *sql.DB, email string, year int) error
- func DeleteParty(db *sql.DB, id int64) error
- func DeletePartyTicket(db *sql.DB, partyId int64, ticketId string) error
- func GetConnStr() string
- func GetLastUpdate(db *sql.DB) (time.Time, error)
- func IsAdmin(db *sql.DB, email string) (bool, error)
- func JoinParty(db *sql.DB, partyId int64, email string) error
- func LoadPartyMemberPurchases(db *sql.DB, partyId int64, year int) (map[string]int, error)
- func LoadSimilarEvents(ctx context.Context, db *sql.DB, eventId string, userEmail string) ([]*events.GenconEvent, error)
- func LoadStarredEvents(db *sql.DB, userEmail string, year int) ([]*events.GenconEvent, error)
- func LogUpdate(db *sql.DB, stats UpdateStats, success bool, errorMsg string) error
- func MatchPendingPartyTickets(db *sql.DB, partyId int64, year int) error
- func MergeOrgs(db *sql.DB, orgs []int64) error
- func NormalizeUserStarredEvents(q queryable, email string, year int) error
- func OpenDb() (*sql.DB, error)
- func RemoveMember(db *sql.DB, partyId int64, email string) error
- func RenameParty(db *sql.DB, id int64, name string) error
- func ResolveNumericEventIds(db *sql.DB, year int, numericIds []string) (map[string]string, error)
- func SaveWishlistCache(db *sql.DB, email string, year int, items []WishlistCacheItem, ...) error
- func SyncTicketHoldersToStarredEvents(db *sql.DB, holderEmail string, formerHolderEmail string, eventId string) error
- func UpdateDisplayName(db *sql.DB, email string, displayName string) error
- func UpdatePartyLeader(db *sql.DB, id int64, newLeaderEmail string) error
- func UpdatePartyMemberInfo(db *sql.DB, partyId int64, email string, displayName string, genconName string, ...) error
- func UpdateUserGenconInfo(db *sql.DB, email string, displayName string, genconName string, ...) error
- func UpdateWishlistConstraints(db *sql.DB, email string, constraints []WishlistConstraint) error
- type AgendaEntry
- type CalendarEventCluster
- type CategorySummary
- type EventGroup
- func FindEvents(db *sql.DB, query *ParsedQuery) ([]*EventGroup, error)
- func LoadEventGroupsForCategory(ctx context.Context, db *sql.DB, short_category string, year int) ([]*EventGroup, error)
- func LoadStarredEventGroups(db *sql.DB, userEmail string, year int) ([]*EventGroup, error)
- func SearchEvents(ctx context.Context, db *sql.DB, query SearchQuery) ([]*EventGroup, error)
- type EventOrgMetadata
- type FamilySyncInfo
- type Game
- type GameFamily
- type GameSyncInfo
- type MemberInterest
- type Organizer
- type ParsedQuery
- type Party
- type PartyTicket
- func AddPartyTicket(db *sql.DB, partyId int64, year int, ...) (*PartyTicket, error)
- func LoadPartyTickets(db *sql.DB, partyId int64, year int) ([]*PartyTicket, error)
- func SyncPartyTickets(db *sql.DB, partyId int64, year int, authEmail string, ...) ([]*PartyTicket, error)
- func ToggleTicketReturn(db *sql.DB, partyId int64, ticketId string) (*PartyTicket, error)
- func UpdateTicketPurchaser(db *sql.DB, partyId int64, ticketId string, newPurchaserEmail string) (*PartyTicket, error)
- type PersistedEventInfo
- type SearchQuery
- type SharedInterestGroup
- type StarredEvent
- type TicketSyncInput
- type TicketTransfer
- type UpdateStats
- type User
- type UserStarredEvents
- func GetAllStarredIds(db *sql.DB, email string) (*UserStarredEvents, error)
- func GetStarredIds(db *sql.DB, email string, year int) (*UserStarredEvents, error)
- func RemoveStarredEventGroup(db *sql.DB, email string, eventId string) (*UserStarredEvents, error)
- func UpdateStarredEvent(db *sql.DB, email string, eventId string, tier string, starGroup bool, ...) (*UserStarredEvents, error)
- func UpdateStarredEventInternal(db *sql.DB, email string, eventId string, tier string, starGroup bool, ...) (*UserStarredEvents, error)
- func UpdateStarredEventMinimal(db *sql.DB, email string, eventId string, tier string, starGroup bool, ...) (*UserStarredEvents, error)
- type WishlistCacheItem
- type WishlistConstraint
Constants ¶
This section is empty.
Variables ¶
var INDIANAPOLIS, _ = time.LoadLocation("America/Indiana/Indianapolis")
Functions ¶
func BulkStarEvents ¶
func CleanupTransaction ¶
Use as defer func() { CleanupTransaction(err, tx) }() Need to do it in an anonymous function to avoid binding err and tx
func DeletePartyTicket ¶
DeletePartyTicket deletes a ticket.
func GetConnStr ¶
func GetConnStr() string
func LoadSimilarEvents ¶
func LoadStarredEvents ¶
func MatchPendingPartyTickets ¶
MatchPendingPartyTickets scans existing party tickets and reassigns unmapped tickets when new members join or update profiles.
func ResolveNumericEventIds ¶
func SaveWishlistCache ¶
func SyncTicketHoldersToStarredEvents ¶
func SyncTicketHoldersToStarredEvents(db *sql.DB, holderEmail string, formerHolderEmail string, eventId string) error
SyncTicketHoldersToStarredEvents keeps the starred_events table in sync with ticket holders.
func UpdatePartyMemberInfo ¶
func UpdateUserGenconInfo ¶
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 ¶
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
Location string
RoomName string
TableNumber string
}
func LoadStarredEventClusters ¶
func LoadStarredEventClusters(db *sql.DB, userEmail string, year int, starredEvents []*events.GenconEvent) ([]*CalendarEventCluster, error)
type CategorySummary ¶
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
TotalTickets int
WedEvents int
WedTotalTickets int
WedTickets int
ThursEvents int
ThursTotalTickets int
ThursTickets int
FriEvents int
FriTotalTickets int
FriTickets int
SatEvents int
SatTotalTickets int
SatTickets int
SunEvents int
SunTotalTickets int
SunTickets int
}
func FindEvents ¶
func FindEvents(db *sql.DB, query *ParsedQuery) ([]*EventGroup, error)
func LoadStarredEventGroups ¶
func SearchEvents ¶
func SearchEvents(ctx context.Context, db *sql.DB, query SearchQuery) ([]*EventGroup, error)
type EventOrgMetadata ¶
type EventOrgMetadata struct {
OrgGroup string
Title string
Year int
GmNames string
Email string
Website string
}
func LoadEventOrgMetadata ¶
func LoadEventOrgMetadata(db *sql.DB) ([]EventOrgMetadata, error)
type FamilySyncInfo ¶
func LoadFamilySyncInfos ¶
func LoadFamilySyncInfos(db *sql.DB) ([]*FamilySyncInfo, error)
type Game ¶
type GameFamily ¶
func LoadFamilies ¶
func LoadFamilies(db *sql.DB) ([]*GameFamily, error)
type GameSyncInfo ¶
func LoadGameSyncInfos ¶
func LoadGameSyncInfos(db *sql.DB) ([]*GameSyncInfo, error)
type MemberInterest ¶
type ParsedQuery ¶
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.
type PartyTicket ¶
type PartyTicket struct {
TicketId string `json:"ticketId"`
PartyId int64 `json:"partyId"`
EventId string `json:"eventId"`
Year int `json:"year"`
PurchaserEmail string `json:"purchaserEmail"`
GenconPurchaserName string `json:"genconPurchaserName"`
GenconTicketId string `json:"genconTicketId"`
GenconRecipientName string `json:"genconRecipientName"`
GenconRecipientId string `json:"genconRecipientId"`
HolderEmail string `json:"holderEmail"`
HolderDisplayName string `json:"holderDisplayName"`
TicketType string `json:"ticketType"`
TicketStatus string `json:"ticketStatus"`
TransferStatus string `json:"transferStatus"`
CreatedAt time.Time `json:"createdAt"`
LastModified time.Time `json:"lastModified"`
// Enriched fields from events table
EventTitle string `json:"eventTitle,omitempty"`
EventStartTime string `json:"eventStartTime,omitempty"`
EventEndTime string `json:"eventEndTime,omitempty"`
EventLocation string `json:"eventLocation,omitempty"`
RoomName string `json:"roomName,omitempty"`
TableNumber string `json:"tableNumber,omitempty"`
EventCategory string `json:"eventCategory,omitempty"`
EventMapLink string `json:"eventMapLink,omitempty"`
}
func AddPartyTicket ¶
func AddPartyTicket(db *sql.DB, partyId int64, year int, eventId, purchaserEmail, genconRecipientName, holderEmail, ticketType string) (*PartyTicket, error)
AddPartyTicket manually adds a ticket.
func LoadPartyTickets ¶
LoadPartyTickets retrieves all tickets for a party in a given year.
func SyncPartyTickets ¶
func SyncPartyTickets(db *sql.DB, partyId int64, year int, authEmail string, tickets []TicketSyncInput) ([]*PartyTicket, error)
SyncPartyTickets batch-ingests tickets from the Chrome extension.
func ToggleTicketReturn ¶
ToggleTicketReturn toggles a ticket between 'active' and 'returned'.
func UpdateTicketPurchaser ¶
type PersistedEventInfo ¶
type SearchQuery ¶
type StarredEvent ¶
type TicketSyncInput ¶
type TicketSyncInput struct {
EventId string `json:"eventId"`
GenconTicketId string `json:"genconTicketId"`
PurchaserGenconId string `json:"purchaserGenconId"`
PurchaserName string `json:"purchaserName"`
RecipientGenconId string `json:"recipientGenconId"`
RecipientName string `json:"recipientName"`
TicketType string `json:"ticketType"`
Status string `json:"status"` // "active" or "returned"
}
type TicketTransfer ¶
type TicketTransfer struct {
TransferId string `json:"transferId"`
TicketId string `json:"ticketId"`
PartyId int64 `json:"partyId"`
FromEmail string `json:"fromEmail"`
ToEmail string `json:"toEmail"`
TransferType string `json:"transferType"`
Status string `json:"status"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
func InitiateTicketTransfer ¶
func InitiateTicketTransfer(db *sql.DB, partyId int64, ticketId, fromEmail, toEmail, transferType string) (*TicketTransfer, error)
InitiateTicketTransfer initiates a transfer between party members.
func RespondTicketTransfer ¶
func RespondTicketTransfer(db *sql.DB, partyId int64, transferId, action, callerEmail string) (*TicketTransfer, error)
RespondTicketTransfer handles accept/reject/complete actions for pending e-ticket transfers.
type UpdateStats ¶
func BulkUpdateEvents ¶
func BulkUpdateEvents(tx *sql.Tx, parsedEvents []*events.GenconEvent) (UpdateStats, error)
type User ¶
type UserStarredEvents ¶
type UserStarredEvents struct {
Email string
StarredEvents []StarredEvent
}
func GetAllStarredIds ¶
func GetAllStarredIds(db *sql.DB, email string) (*UserStarredEvents, error)
func GetStarredIds ¶
func RemoveStarredEventGroup ¶
func UpdateStarredEvent ¶
func (*UserStarredEvents) GetTier ¶
func (u *UserStarredEvents) GetTier(eventId string) string
type WishlistCacheItem ¶
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)