database

package
v0.0.0-...-cb3de82 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bird

type Bird struct {
	ID             uuid.UUID
	CreatedAt      time.Time
	UpdatedAt      time.Time
	CommonName     sql.NullString
	ScientificName sql.NullString
	Family         sql.NullString
	Order          sql.NullString
	Status         sql.NullString
	ImageUrls      []string
}

type CreateBirdParams

type CreateBirdParams struct {
	CommonName     sql.NullString
	ScientificName sql.NullString
	Family         sql.NullString
	Order          sql.NullString
	Status         sql.NullString
	ImageUrls      []string
}

type CreateMatchSessionParams

type CreateMatchSessionParams struct {
	LeftbirdID   uuid.UUID
	RightbirdID  uuid.UUID
	SessionToken string
	ExpiresAt    time.Time
	UserIp       sql.NullString
	UserAgent    sql.NullString
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type GetTopRatingsRow

type GetTopRatingsRow struct {
	ID             uuid.UUID
	Matches        sql.NullInt32
	Rating         sql.NullInt32
	CommonName     sql.NullString
	ScientificName sql.NullString
	Status         sql.NullString
}

type Match

type Match struct {
	ID           uuid.UUID
	CreatedAt    time.Time
	UpdatedAt    time.Time
	WinnerbirdID uuid.UUID
	LoserbirdID  uuid.UUID
}

type MatchSession

type MatchSession struct {
	ID           uuid.UUID
	CreatedAt    time.Time
	LeftbirdID   uuid.UUID
	RightbirdID  uuid.UUID
	SessionToken string
	ExpiresAt    time.Time
	Voted        sql.NullBool
	VotedAt      sql.NullTime
	WinnerbirdID uuid.NullUUID
	UserIp       sql.NullString
	UserAgent    sql.NullString
}

type PopulateRatingParams

type PopulateRatingParams struct {
	Matches sql.NullInt32
	Rating  sql.NullInt32
	BirdID  uuid.UUID
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CleanUpSessions

func (q *Queries) CleanUpSessions(ctx context.Context) error

func (*Queries) CreateBird

func (q *Queries) CreateBird(ctx context.Context, arg CreateBirdParams) (Bird, error)

func (*Queries) CreateMatchSession

func (q *Queries) CreateMatchSession(ctx context.Context, arg CreateMatchSessionParams) (MatchSession, error)

func (*Queries) Danger_ResetRatingsDB

func (q *Queries) Danger_ResetRatingsDB(ctx context.Context) error

func (*Queries) GetAllBirds

func (q *Queries) GetAllBirds(ctx context.Context) ([]Bird, error)

func (*Queries) GetAllImageUrls

func (q *Queries) GetAllImageUrls(ctx context.Context) ([][]string, error)

func (*Queries) GetAllMatches

func (q *Queries) GetAllMatches(ctx context.Context, limit int32) ([]Match, error)

func (*Queries) GetBirdByID

func (q *Queries) GetBirdByID(ctx context.Context, id uuid.UUID) (Bird, error)

func (*Queries) GetMatchByID

func (q *Queries) GetMatchByID(ctx context.Context, id uuid.UUID) (Match, error)

func (*Queries) GetMatchByParticipants

func (q *Queries) GetMatchByParticipants(ctx context.Context, winnerbirdID uuid.UUID) ([]Match, error)

func (*Queries) GetMatchSessionById

func (q *Queries) GetMatchSessionById(ctx context.Context, id uuid.UUID) (MatchSession, error)

func (*Queries) GetMatchSessionByToken

func (q *Queries) GetMatchSessionByToken(ctx context.Context, sessionToken string) (MatchSession, error)

func (*Queries) GetRandomBird

func (q *Queries) GetRandomBird(ctx context.Context, limit int32) ([]Bird, error)

func (*Queries) GetRandomBirdWithImage

func (q *Queries) GetRandomBirdWithImage(ctx context.Context, limit int32) ([]Bird, error)

func (*Queries) GetRatingByBirdID

func (q *Queries) GetRatingByBirdID(ctx context.Context, birdID uuid.UUID) (Rating, error)

func (*Queries) GetTopRatings

func (q *Queries) GetTopRatings(ctx context.Context, limit int32) ([]GetTopRatingsRow, error)

func (*Queries) GetTotalBirdCount

func (q *Queries) GetTotalBirdCount(ctx context.Context) (int64, error)

func (*Queries) GetTotalRatings

func (q *Queries) GetTotalRatings(ctx context.Context) (int64, error)

func (*Queries) PopulateRating

func (q *Queries) PopulateRating(ctx context.Context, arg PopulateRatingParams) error

func (*Queries) RecordMatch

func (q *Queries) RecordMatch(ctx context.Context, arg RecordMatchParams) (Match, error)

func (*Queries) UpdateRatingByBirdID

func (q *Queries) UpdateRatingByBirdID(ctx context.Context, arg UpdateRatingByBirdIDParams) (Rating, error)

func (*Queries) VoteMatch

func (q *Queries) VoteMatch(ctx context.Context, arg VoteMatchParams) (MatchSession, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type Rating

type Rating struct {
	ID         uuid.UUID
	CreatedAt  time.Time
	UpdatedAt  time.Time
	Matches    sql.NullInt32
	Rating     sql.NullInt32
	BirdID     uuid.UUID
	CommonName sql.NullString
}

type RecordMatchParams

type RecordMatchParams struct {
	WinnerbirdID uuid.UUID
	LoserbirdID  uuid.UUID
}

type TestDB

type TestDB struct {
	Container *postgres.PostgresContainer
	DB        *sql.DB
	Queries   *Queries
	ConnStr   string
}

func SetupTestDB

func SetupTestDB(t *testing.T) (*TestDB, func())

func (*TestDB) SeedTestData

func (db *TestDB) SeedTestData(t *testing.T, count int) []Bird

type UpdateRatingByBirdIDParams

type UpdateRatingByBirdIDParams struct {
	Rating sql.NullInt32
	BirdID uuid.UUID
}

type VoteMatchParams

type VoteMatchParams struct {
	ID           uuid.UUID
	WinnerbirdID uuid.NullUUID
}

Jump to

Keyboard shortcuts

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