89e884fae9
- Add migration 000004 for sessions table and performance indexes - Create session.sql queries for CRUD operations - Generate session repository code with sqlc - Create token auth middleware for Echo framework - Create token handler with create/delete/cleanup endpoints - Add /api/v1 router with token authentication infrastructure - Update dbHelper.go to use Up() instead of Migrate(2) - Update server.go to initialize token handler - Existing endpoints remain functional (to be deprecated) New endpoints: - POST /api/v1/token - Create new session token - DELETE /api/v1/token - Invalidate token - POST /api/v1/token/cleanup - Remove expired sessions Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
|
|
package repository
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
type Game struct {
|
|
ID int32 `json:"id"`
|
|
GameName string `json:"game_name"`
|
|
Added time.Time `json:"added"`
|
|
Deleted *time.Time `json:"deleted"`
|
|
LastChanged *time.Time `json:"last_changed"`
|
|
Path string `json:"path"`
|
|
TimesPlayed int32 `json:"times_played"`
|
|
LastPlayed *time.Time `json:"last_played"`
|
|
NumberOfSongs int32 `json:"number_of_songs"`
|
|
Hash string `json:"hash"`
|
|
}
|
|
|
|
type Session struct {
|
|
Token string `json:"token"`
|
|
IpAddress string `json:"ip_address"`
|
|
UserAgent string `json:"user_agent"`
|
|
ClientType *string `json:"client_type"`
|
|
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
|
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
|
}
|
|
|
|
type Song struct {
|
|
GameID int32 `json:"game_id"`
|
|
SongName string `json:"song_name"`
|
|
Path string `json:"path"`
|
|
TimesPlayed int32 `json:"times_played"`
|
|
Hash string `json:"hash"`
|
|
FileName *string `json:"file_name"`
|
|
}
|
|
|
|
type SongList struct {
|
|
MatchDate time.Time `json:"match_date"`
|
|
MatchID int32 `json:"match_id"`
|
|
SongNo int32 `json:"song_no"`
|
|
GameName *string `json:"game_name"`
|
|
SongName *string `json:"song_name"`
|
|
}
|
|
|
|
type Vgmq struct {
|
|
SongNo int32 `json:"song_no"`
|
|
Path *string `json:"path"`
|
|
Clue *string `json:"clue"`
|
|
Answered bool `json:"answered"`
|
|
Answer *string `json:"answer"`
|
|
}
|