api

package
v0.0.0-...-902b50d Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HTTPRequest

func HTTPRequest(method, url string, headers map[string]string, body []byte) (*http.Response, error)

func HandleError

func HandleError(w http.ResponseWriter, r *http.Request)

func HandleReadiness

func HandleReadiness(w http.ResponseWriter, r *http.Request)

func New

func New(c Config) http.Handler

Types

type CommentResponse

type CommentResponse struct {
	ID              int32     `json:"id"`
	DebateID        int32     `json:"debate_id"`
	ParentCommentID *int32    `json:"parent_comment_id,omitempty"`
	UserID          int32     `json:"user_id"`
	UserFirstName   string    `json:"user_first_name"`
	UserLastName    string    `json:"user_last_name"`
	Content         string    `json:"content"`
	CreatedAt       time.Time `json:"created_at"`
	UpdatedAt       time.Time `json:"updated_at"`
}

type Config

type Config struct {
	DB                 *database.Queries
	DBConn             *sql.DB
	FootballAPIKey     string
	RapidAPIKey        string
	Cache              cache.CacheInterface
	APIFootballBaseURL string
	OpenAIKey          string
	OpenAIBaseURL      string
	AIPromptGenerator  *ai.PromptGenerator
}

func (*Config) HandleCacheStats

func (c *Config) HandleCacheStats(w http.ResponseWriter, r *http.Request)

func (*Config) HandleRedisHealth

func (c *Config) HandleRedisHealth(w http.ResponseWriter, r *http.Request)

type CreateCommentRequest

type CreateCommentRequest struct {
	DebateID        int32  `json:"debate_id"`
	ParentCommentID *int32 `json:"parent_comment_id,omitempty"`
	Content         string `json:"content"`
}

type CreateDebateCardRequest

type CreateDebateCardRequest struct {
	DebateID    int32  `json:"debate_id"`
	Stance      string `json:"stance"` // "agree", "disagree", "wildcard"
	Title       string `json:"title"`
	Description string `json:"description"`
	AIGenerated bool   `json:"ai_generated"`
}

type CreateDebateRequest

type CreateDebateRequest struct {
	MatchID     string `json:"match_id"`
	DebateType  string `json:"debate_type"` // "pre_match" or "post_match"
	Headline    string `json:"headline"`
	Description string `json:"description"`
	AIGenerated bool   `json:"ai_generated"`
}

Debate API types

type CreatePlayerProfileRequest

type CreatePlayerProfileRequest struct {
	UserID    int32      `json:"user_id"`
	TeamID    *uuid.UUID `json:"team_id"`
	Position  string     `json:"position"`
	Age       int32      `json:"age"`
	Country   string     `json:"country"`
	HeightCm  int32      `json:"height_cm"`
	Pace      int32      `json:"pace"`
	Shooting  int32      `json:"shooting"`
	Passing   int32      `json:"passing"`
	Stamina   int32      `json:"stamina"`
	Dribbling int32      `json:"dribbling"`
	Defending int32      `json:"defending"`
	Physical  int32      `json:"physical"`
}

CreatePlayerProfileRequest represents the JSON request for creating a player profile

type CreateVoteRequest

type CreateVoteRequest struct {
	DebateCardID int32  `json:"debate_card_id"`
	VoteType     string `json:"vote_type"` // "upvote", "downvote", "emoji"
	Emoji        string `json:"emoji,omitempty"`
}

type DebateAnalyticsResponse

type DebateAnalyticsResponse struct {
	ID              int32     `json:"id"`
	DebateID        int32     `json:"debate_id"`
	TotalVotes      int       `json:"total_votes"`
	TotalComments   int       `json:"total_comments"`
	EngagementScore float64   `json:"engagement_score"`
	CreatedAt       time.Time `json:"created_at"`
	UpdatedAt       time.Time `json:"updated_at"`
}

type DebateCardResponse

type DebateCardResponse struct {
	ID          int32         `json:"id"`
	DebateID    int32         `json:"debate_id"`
	Stance      string        `json:"stance"`
	Title       string        `json:"title"`
	Description string        `json:"description"`
	AIGenerated bool          `json:"ai_generated"`
	CreatedAt   time.Time     `json:"created_at"`
	UpdatedAt   time.Time     `json:"updated_at"`
	VoteCounts  VoteCounts    `json:"vote_counts"`
	UserVote    *VoteResponse `json:"user_vote,omitempty"`
}

type DebateDataAggregator

type DebateDataAggregator struct {
	Config *Config
}

func NewDebateDataAggregator

func NewDebateDataAggregator(config *Config) *DebateDataAggregator

func (*DebateDataAggregator) AggregateMatchData

func (dda *DebateDataAggregator) AggregateMatchData(ctx context.Context, matchReq MatchDataRequest) (*ai.MatchData, error)

AggregateMatchData fetches and combines data from multiple sources for debate generation

type DebateResponse

type DebateResponse struct {
	ID          int32                    `json:"id"`
	MatchID     string                   `json:"match_id"`
	DebateType  string                   `json:"debate_type"`
	Headline    string                   `json:"headline"`
	Description string                   `json:"description"`
	AIGenerated bool                     `json:"ai_generated"`
	CreatedAt   time.Time                `json:"created_at"`
	UpdatedAt   time.Time                `json:"updated_at"`
	Cards       []DebateCardResponse     `json:"cards,omitempty"`
	Analytics   *DebateAnalyticsResponse `json:"analytics,omitempty"`
}

type GenerateDebateRequest

type GenerateDebateRequest struct {
	MatchID         string `json:"match_id"`
	DebateType      string `json:"debate_type"`                // "pre_match" or "post_match"
	ForceRegenerate bool   `json:"force_regenerate,omitempty"` // Force regeneration even if cached
}

type GetLeagueStandingsByLeagueIdResponse

type GetLeagueStandingsByLeagueIdResponse struct {
	Get        string `json:"get"`
	Parameters struct {
		League string `json:"league"`
		Season string `json:"season"`
	} `json:"parameters"`
	Errors  any `json:"errors"`
	Results int `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		League struct {
			ID        int    `json:"id"`
			Name      string `json:"name"`
			Country   string `json:"country"`
			Logo      string `json:"logo"`
			Flag      string `json:"flag"`
			Season    int    `json:"season"`
			Standings [][]struct {
				Rank int `json:"rank"`
				Team struct {
					ID   int    `json:"id"`
					Name string `json:"name"`
					Logo string `json:"logo"`
				} `json:"team"`
				Points      int    `json:"points"`
				GoalsDiff   int    `json:"goalsDiff"`
				Group       string `json:"group"`
				Form        string `json:"form"`
				Status      string `json:"status"`
				Description string `json:"description"`
				All         struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"all"`
				Home struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"home"`
				Away struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"away"`
				Update time.Time `json:"update"`
			} `json:"standings"`
		} `json:"league"`
	} `json:"response"`
}

type GetLeagueStandingsByTeamIdResponse

type GetLeagueStandingsByTeamIdResponse struct {
	Get        string `json:"get"`
	Parameters struct {
		Season string `json:"season"`
		Team   string `json:"team"`
	} `json:"parameters"`
	Errors  any `json:"errors"`
	Results int `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		League struct {
			ID        int    `json:"id"`
			Name      string `json:"name"`
			Country   string `json:"country"`
			Logo      string `json:"logo"`
			Flag      string `json:"flag"`
			Season    int    `json:"season"`
			Standings [][]struct {
				Rank int `json:"rank"`
				Team struct {
					ID   int    `json:"id"`
					Name string `json:"name"`
					Logo string `json:"logo"`
				} `json:"team"`
				Points      int    `json:"points"`
				GoalsDiff   int    `json:"goalsDiff"`
				Group       string `json:"group"`
				Form        string `json:"form"`
				Status      string `json:"status"`
				Description string `json:"description"`
				All         struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"all"`
				Home struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"home"`
				Away struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"away"`
				Update time.Time `json:"update"`
			} `json:"standings"`
		} `json:"league"`
	} `json:"response"`
}

type GetLeagueStandingsResponse

type GetLeagueStandingsResponse struct {
	Get      string `json:"get"`
	Response []struct {
		League struct {
			ID        int    `json:"id"`
			Name      string `json:"name"`
			Country   string `json:"country"`
			Logo      string `json:"logo"`
			Flag      string `json:"flag"`
			Season    int    `json:"season"`
			Standings [][]struct {
				Rank int `json:"rank"`
				Team struct {
					ID   int    `json:"id"`
					Name string `json:"name"`
					Logo string `json:"logo"`
				} `json:"team"`
				Points      int    `json:"points"`
				GoalsDiff   int    `json:"goalsDiff"`
				Group       string `json:"group"`
				Form        string `json:"form"`
				Status      string `json:"status"`
				Description string `json:"description"`
				All         struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"all"`
				Home struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"home"`
				Away struct {
					Played int `json:"played"`
					Win    int `json:"win"`
					Draw   int `json:"draw"`
					Lose   int `json:"lose"`
					Goals  struct {
						For     int `json:"for"`
						Against int `json:"against"`
					} `json:"goals"`
				} `json:"away"`
				Update string `json:"update"`
			} `json:"standings"`
		} `json:"league"`
	} `json:"response"`
	Errors  []string `json:"errors"`
	Results int      `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
}

type GetLeaguesResponse

type GetLeaguesResponse struct {
	Get        string `json:"get"`
	Parameters any    `json:"parameters"`
	Errors     any    `json:"errors"`
	Results    int    `json:"results"`
	Paging     struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		League struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
			Type string `json:"type"`
			Logo string `json:"logo"`
		} `json:"league"`
		Country struct {
			Name string `json:"name"`
			Code any    `json:"code"`
			Flag any    `json:"flag"`
		} `json:"country"`
		Seasons []struct {
			Year     int    `json:"year"`
			Start    string `json:"start"`
			End      string `json:"end"`
			Current  bool   `json:"current"`
			Coverage struct {
				Fixtures struct {
					Events             bool `json:"events"`
					Lineups            bool `json:"lineups"`
					StatisticsFixtures bool `json:"statistics_fixtures"`
					StatisticsPlayers  bool `json:"statistics_players"`
				} `json:"fixtures"`
				Standings   bool `json:"standings"`
				Players     bool `json:"players"`
				TopScorers  bool `json:"top_scorers"`
				TopAssists  bool `json:"top_assists"`
				TopCards    bool `json:"top_cards"`
				Injuries    bool `json:"injuries"`
				Predictions bool `json:"predictions"`
				Odds        bool `json:"odds"`
			} `json:"coverage"`
		} `json:"seasons"`
	} `json:"response"`
}

type GetLineUpResponse

type GetLineUpResponse struct {
	Get        string `json:"get"`
	Parameters struct {
		Fixture string `json:"fixture"`
	} `json:"parameters"`
	Errors  []any `json:"errors"`
	Results int   `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		Team struct {
			ID     int    `json:"id"`
			Name   string `json:"name"`
			Logo   string `json:"logo"`
			Colors any    `json:"colors"`
		} `json:"team"`
		Coach struct {
			ID    int    `json:"id"`
			Name  string `json:"name"`
			Photo string `json:"photo"`
		} `json:"coach"`
		Formation string `json:"formation"`
		StartXI   []struct {
			Player Player `json:"player"`
		} `json:"startXI"`
		Substitutes []struct {
			Player struct {
				ID     int    `json:"id"`
				Name   string `json:"name"`
				Number int    `json:"number"`
				Pos    string `json:"pos"`
				Grid   any    `json:"grid"`
				Photo  string `json:"photo"`
			} `json:"player"`
		} `json:"substitutes"`
	} `json:"response"`
}

type GetMatchesAPIResponse

type GetMatchesAPIResponse struct {
	Get        string `json:"get"`
	Parameters struct {
		Date string `json:"date"`
	} `json:"parameters"`
	Errors  []any `json:"errors"`
	Results int   `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		Fixture struct {
			ID        int       `json:"id"`
			Referee   string    `json:"referee"`
			Timezone  string    `json:"timezone"`
			Date      time.Time `json:"date"`
			Timestamp int       `json:"timestamp"`
			Periods   struct {
				First  int `json:"first"`
				Second int `json:"second"`
			} `json:"periods"`
			Venue struct {
				ID   int    `json:"id"`
				Name string `json:"name"`
				City string `json:"city"`
			} `json:"venue"`
			Status struct {
				Long    string `json:"long"`
				Short   string `json:"short"`
				Elapsed int    `json:"elapsed"`
			} `json:"status"`
		} `json:"fixture"`
		League struct {
			ID      int    `json:"id"`
			Name    string `json:"name"`
			Country string `json:"country"`
			Logo    string `json:"logo"`
			Flag    any    `json:"flag"`
			Season  int    `json:"season"`
			Round   string `json:"round"`
		} `json:"league"`
		Teams struct {
			Home struct {
				ID     int    `json:"id"`
				Name   string `json:"name"`
				Logo   string `json:"logo"`
				Winner any    `json:"winner"`
			} `json:"home"`
			Away struct {
				ID     int    `json:"id"`
				Name   string `json:"name"`
				Logo   string `json:"logo"`
				Winner any    `json:"winner"`
			} `json:"away"`
		} `json:"teams"`
		Goals struct {
			Home int `json:"home"`
			Away int `json:"away"`
		} `json:"goals"`
		Score struct {
			Halftime struct {
				Home int `json:"home"`
				Away int `json:"away"`
			} `json:"halftime"`
			Fulltime struct {
				Home int `json:"home"`
				Away int `json:"away"`
			} `json:"fulltime"`
			Extratime struct {
				Home any `json:"home"`
				Away any `json:"away"`
			} `json:"extratime"`
			Penalty struct {
				Home any `json:"home"`
				Away any `json:"away"`
			} `json:"penalty"`
		} `json:"score"`
	} `json:"response"`
}

type GetMatchesParams

type GetMatchesParams struct {
	Date string
}

type GetSquadResponse

type GetSquadResponse struct {
	Get        string `json:"get"`
	Parameters struct {
		Team string `json:"team"`
	} `json:"parameters"`
	Errors  []any `json:"errors"`
	Results int   `json:"results"`
	Paging  struct {
		Current int `json:"current"`
		Total   int `json:"total"`
	} `json:"paging"`
	Response []struct {
		Team struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
			Logo string `json:"logo"`
		} `json:"team"`
		Players []Player `json:"players"`
	} `json:"response"`
}

type GoogleNewsResponse

type GoogleNewsResponse struct {
	Status string `json:"status"`
	Items  []struct {
		Timestamp string `json:"timestamp"`
		Title     string `json:"title"`
		Snippet   string `json:"snippet"`
		Images    struct {
			Thumbnail        string `json:"thumbnail"`
			ThumbnailProxied string `json:"thumbnailProxied"`
		} `json:"images"`
		NewsUrl   string `json:"newsUrl"`
		Publisher string `json:"publisher"`
	} `json:"items"`
}

type HealthResponse

type HealthResponse struct {
	Message string `json:"message"`
}

type LeaguesService

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

LeaguesService handles league-related operations

func NewLeaguesService

func NewLeaguesService(db *database.Queries) *LeaguesService

NewLeaguesService creates a new leagues service

func (*LeaguesService) CreateLeague

func (s *LeaguesService) CreateLeague(w http.ResponseWriter, r *http.Request)

CreateLeague creates a new league

func (*LeaguesService) DeleteLeague

func (s *LeaguesService) DeleteLeague(w http.ResponseWriter, r *http.Request)

DeleteLeague deletes a league

func (*LeaguesService) GetLeague

func (s *LeaguesService) GetLeague(w http.ResponseWriter, r *http.Request)

GetLeague retrieves a league by ID

func (*LeaguesService) GetLeagueStats

func (s *LeaguesService) GetLeagueStats(w http.ResponseWriter, r *http.Request)

GetLeagueStats retrieves league statistics

func (*LeaguesService) IsAdmin

func (svc *LeaguesService) IsAdmin(ctx context.Context, userID int64) (bool, error)

Permission check: Is user an admin?

func (*LeaguesService) ListLeagues

func (s *LeaguesService) ListLeagues(w http.ResponseWriter, r *http.Request)

ListLeagues retrieves all leagues with optional filtering

func (*LeaguesService) UpdateLeague

func (s *LeaguesService) UpdateLeague(w http.ResponseWriter, r *http.Request)

UpdateLeague updates a league

type Lineup

type Lineup struct {
	Starters    []Player `json:"starters"`
	Substitutes []Player `json:"substitutes"`
}

type MatchDataRequest

type MatchDataRequest struct {
	MatchID         string `json:"match_id"`
	HomeTeam        string `json:"home_team"`
	AwayTeam        string `json:"away_team"`
	Date            string `json:"date"`
	Status          string `json:"status"`
	HomeScore       int    `json:"home_score"`
	AwayScore       int    `json:"away_score"`
	HomeGoals       int    `json:"home_goals"`
	AwayGoals       int    `json:"away_goals"`
	HomeShots       int    `json:"home_shots"`
	AwayShots       int    `json:"away_shots"`
	HomePossession  int    `json:"home_possession"`
	AwayPossession  int    `json:"away_possession"`
	HomeFouls       int    `json:"home_fouls"`
	AwayFouls       int    `json:"away_fouls"`
	HomeYellowCards int    `json:"home_yellow_cards"`
	AwayYellowCards int    `json:"away_yellow_cards"`
	HomeRedCards    int    `json:"home_red_cards"`
	AwayRedCards    int    `json:"away_red_cards"`
	Venue           string `json:"venue"`
	League          string `json:"league"`
	Season          string `json:"season"`
}

type MatchInfo

type MatchInfo struct {
	HomeTeam        string
	AwayTeam        string
	Date            string
	Status          string
	HomeScore       int
	AwayScore       int
	HomeGoals       int
	AwayGoals       int
	HomeShots       int
	AwayShots       int
	HomePossession  int
	AwayPossession  int
	HomeFouls       int
	AwayFouls       int
	HomeYellowCards int
	AwayYellowCards int
	HomeRedCards    int
	AwayRedCards    int
	Venue           string
	League          string
	Season          string
}

MatchInfo represents detailed information about a match

type Player

type Player struct {
	ID     int    `json:"id"`
	Name   string `json:"name"`
	Number int    `json:"number"`
	Pos    string `json:"pos"`
	Grid   string `json:"grid"`
	Photo  string `json:"photo"`
}

type PlayerProfileService

type PlayerProfileService struct {
	DB *database.Queries
}

PlayerProfileService provides business logic for player profiles

func (*PlayerProfileService) CreatePlayerProfile

func (svc *PlayerProfileService) CreatePlayerProfile(w http.ResponseWriter, r *http.Request)

Handler: Create player profile

func (*PlayerProfileService) DeletePlayerProfile

func (svc *PlayerProfileService) DeletePlayerProfile(w http.ResponseWriter, r *http.Request)

Handler: Delete player profile

func (*PlayerProfileService) GetPlayerProfile

func (svc *PlayerProfileService) GetPlayerProfile(w http.ResponseWriter, r *http.Request)

Handler: Get player profile

func (*PlayerProfileService) RecalculateIsVerified

func (svc *PlayerProfileService) RecalculateIsVerified(ctx context.Context, profileID string) error

RecalculateIsVerified sets is_verified=true if 3+ unique verifications exist

func (*PlayerProfileService) UpdatePlayerProfile

func (svc *PlayerProfileService) UpdatePlayerProfile(w http.ResponseWriter, r *http.Request)

Handler: Update player profile

type TeamManagersService

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

TeamManagersService handles team manager-related operations

func NewTeamManagersService

func NewTeamManagersService(db *database.Queries) *TeamManagersService

NewTeamManagersService creates a new team managers service

func (*TeamManagersService) CreateTeamManager

func (s *TeamManagersService) CreateTeamManager(w http.ResponseWriter, r *http.Request)

CreateTeamManager creates a new team manager

func (*TeamManagersService) DeleteTeamManager

func (s *TeamManagersService) DeleteTeamManager(w http.ResponseWriter, r *http.Request)

DeleteTeamManager deletes a team manager

func (*TeamManagersService) GetManagerStats

func (s *TeamManagersService) GetManagerStats(w http.ResponseWriter, r *http.Request)

GetManagerStats retrieves manager statistics

func (*TeamManagersService) GetTeamManager

func (s *TeamManagersService) GetTeamManager(w http.ResponseWriter, r *http.Request)

GetTeamManager retrieves a team manager by ID

func (*TeamManagersService) ListTeamManagers

func (s *TeamManagersService) ListTeamManagers(w http.ResponseWriter, r *http.Request)

ListTeamManagers retrieves all team managers with optional filtering

func (*TeamManagersService) UpdateTeamManager

func (s *TeamManagersService) UpdateTeamManager(w http.ResponseWriter, r *http.Request)

UpdateTeamManager updates a team manager

type TeamsService

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

TeamsService handles team-related operations

func NewTeamsService

func NewTeamsService(db *database.Queries) *TeamsService

NewTeamsService creates a new teams service

func (*TeamsService) CreateTeam

func (s *TeamsService) CreateTeam(w http.ResponseWriter, r *http.Request)

CreateTeam creates a new team

func (*TeamsService) DeleteTeam

func (s *TeamsService) DeleteTeam(w http.ResponseWriter, r *http.Request)

DeleteTeam deletes a team

func (*TeamsService) GetTeam

func (s *TeamsService) GetTeam(w http.ResponseWriter, r *http.Request)

GetTeam retrieves a team by ID

func (*TeamsService) GetTeamStats

func (s *TeamsService) GetTeamStats(w http.ResponseWriter, r *http.Request)

GetTeamStats retrieves team statistics

func (*TeamsService) ListTeams

func (s *TeamsService) ListTeams(w http.ResponseWriter, r *http.Request)

ListTeams retrieves all teams with optional filtering

func (*TeamsService) UpdateTeam

func (s *TeamsService) UpdateTeam(w http.ResponseWriter, r *http.Request)

UpdateTeam updates a team

type VerificationService

type VerificationService struct {
	DB               *database.Queries
	PlayerProfileSvc *PlayerProfileService
}

func (*VerificationService) AddVerification

func (svc *VerificationService) AddVerification(w http.ResponseWriter, r *http.Request)

Handler: Add verification

func (*VerificationService) ListVerifications

func (svc *VerificationService) ListVerifications(w http.ResponseWriter, r *http.Request)

Handler: List verifications for a player

func (*VerificationService) RemoveVerification

func (svc *VerificationService) RemoveVerification(w http.ResponseWriter, r *http.Request)

Handler: Remove verification

type VoteCounts

type VoteCounts struct {
	Upvotes   int            `json:"upvotes"`
	Downvotes int            `json:"downvotes"`
	Emojis    map[string]int `json:"emojis"`
}

type VoteResponse

type VoteResponse struct {
	ID           int32     `json:"id"`
	DebateCardID int32     `json:"debate_card_id"`
	UserID       int32     `json:"user_id"`
	VoteType     string    `json:"vote_type"`
	Emoji        string    `json:"emoji,omitempty"`
	CreatedAt    time.Time `json:"created_at"`
}

Jump to

Keyboard shortcuts

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