fisapi

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FISCacheTTL = 6 * time.Hour
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AthleteFiscodeParam

type AthleteFiscodeParam struct {
	Fiscode string `form:"fiscode" validate:"required,numeric"`
}

type AthleteHandler

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

func NewAthleteHandler

func NewAthleteHandler(store fis.Athlete, cache *cache.Storage) *AthleteHandler

func (*AthleteHandler) DeleteAthlete

func (h *AthleteHandler) DeleteAthlete(w http.ResponseWriter, r *http.Request)

DeleteAthlete godoc

@Summary		Delete athlete
@Description	Deletes an athlete by FIS code
@Tags			FIS - Athlete Management
@Accept			json
@Produce		json
@Param			fiscode	query	integer	true	"FIS code"
@Success		200		"Deleted"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		404		{object}	swagger.NotFoundResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/athlete [delete]

func (*AthleteHandler) GetAthletesBySporttiID

func (h *AthleteHandler) GetAthletesBySporttiID(w http.ResponseWriter, r *http.Request)

GetAthletesBySporttiID godoc

@Summary	Get all athletes for a given SporttiID
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		sporttiid	query		integer	true	"SporttiID"
@Success	200			{object}	swagger.FISAthletesResponse
@Failure	400			{object}	swagger.ValidationErrorResponse
@Failure	401			{object}	swagger.UnauthorizedResponse
@Failure	403			{object}	swagger.ForbiddenResponse
@Failure	404			{object}	swagger.NotFoundResponse
@Failure	500			{object}	swagger.InternalServerErrorResponse
@Failure	503			{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/fiscode [get]

func (*AthleteHandler) InsertAthlete

func (h *AthleteHandler) InsertAthlete(w http.ResponseWriter, r *http.Request)

InsertAthlete godoc

@Summary		Add new athlete
@Description	Inserts a new athlete into athlete table
@Tags			FIS - Athlete Management
@Accept			json
@Produce		json
@Param			athlete	body	swagger.FISInsertAthleteExample	true	"Athlete payload"
@Success		201		"Created"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		409		{object}	swagger.ConflictResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/athlete [post]

func (*AthleteHandler) UpdateAthlete

func (h *AthleteHandler) UpdateAthlete(w http.ResponseWriter, r *http.Request)

UpdateAthlete godoc

@Summary		Update athlete by fiscode
@Description	Updates an existing athlete in athlete table
@Tags			FIS - Athlete Management
@Accept			json
@Produce		json
@Param			athlete	body	swagger.FISUpdateAthleteExample	true	"Athlete payload"
@Success		200		"Updated"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		404		{object}	swagger.NotFoundResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/athlete [put]

type AthleteResultsCCQuery

type AthleteResultsCCQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type AthleteResultsJPQuery

type AthleteResultsJPQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type AthleteResultsNKQuery

type AthleteResultsNKQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type CompetitorHandler

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

func NewCompetitorHandler

func NewCompetitorHandler(store fis.Competitors, cache *cache.Storage) *CompetitorHandler

func (*CompetitorHandler) DeleteCompetitor

func (h *CompetitorHandler) DeleteCompetitor(w http.ResponseWriter, r *http.Request)

DeleteCompetitor godoc

@Summary		Delete competitor
@Description	Deletes a competitor by ID
@Tags			FIS - Competitor Management
@Accept			json
@Produce		json
@Param			id	query	integer	true	"Competitor ID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor [delete]

func (*CompetitorHandler) GetAthletesBySector

func (h *CompetitorHandler) GetAthletesBySector(w http.ResponseWriter, r *http.Request)

GetAthletesBySector godoc

@Summary	Get all athletes for a given sector
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		sectorcode	query		string	true	"Sector code (JP, NK, CC)"
@Success	200			{object}	swagger.FISAthletesResponse
@Failure	400			{object}	swagger.ValidationErrorResponse
@Failure	401			{object}	swagger.UnauthorizedResponse
@Failure	403			{object}	swagger.ForbiddenResponse
@Failure	500			{object}	swagger.InternalServerErrorResponse
@Failure	503			{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/athlete [get]

func (*CompetitorHandler) GetCompetitorCountsByNation

func (h *CompetitorHandler) GetCompetitorCountsByNation(w http.ResponseWriter, r *http.Request)

GetCompetitorCountsByNation godoc

@Summary		Get competitor counts by nation
@Description	Gets counts of competitors grouped by Nationcode.
@Description	Optional filters: sectorcode, gender, age range (agemin/agemax, in years).
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			sectorcode	query		string	false	"Sector code filter (CC,JP,NK)"
@Param			gender		query		string	false	"Gender filter (M/W)"
@Param			agemin		query		int		false	"Minimum age in years"
@Param			agemax		query		int		false	"Maximum age in years"
@Success		200			{object}	swagger.FISCompetitorNationCountsResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor/count-by-nation [get]

func (*CompetitorHandler) GetLastRowCompetitor

func (h *CompetitorHandler) GetLastRowCompetitor(w http.ResponseWriter, r *http.Request)

GetLastRowCompetitor godoc

@Summary		Get last competitor record
@Description	Returns the last row in the competitor table
@Tags			FIS - Competitor Management
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastCompetitorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/competitor [get]

func (*CompetitorHandler) GetNationsBySector

func (h *CompetitorHandler) GetNationsBySector(w http.ResponseWriter, r *http.Request)

GetNationsBySector godoc

@Summary	Get distinct nation codes for a given sector
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		sectorcode	query		string	true	"Sector code (JP, NK, CC)"
@Success	200			{object}	swagger.FISNationsBySectorResponse
@Failure	400			{object}	swagger.ValidationErrorResponse
@Failure	401			{object}	swagger.UnauthorizedResponse
@Failure	403			{object}	swagger.ForbiddenResponse
@Failure	500			{object}	swagger.InternalServerErrorResponse
@Failure	503			{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/nation [get]

func (*CompetitorHandler) InsertCompetitor

func (h *CompetitorHandler) InsertCompetitor(w http.ResponseWriter, r *http.Request)

InsertCompetitor godoc

@Summary		Add new competitor
@Description	Inserts a new competitor
@Tags			FIS - Competitor Management
@Accept			json
@Produce		json
@Param			competitor	body	swagger.FISInsertCompetitorExample	true	"Competitor payload"
@Success		201			"Created"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		409			{object}	swagger.ConflictResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor [post]

func (*CompetitorHandler) SearchCompetitors

func (h *CompetitorHandler) SearchCompetitors(w http.ResponseWriter, r *http.Request)

SearchCompetitors godoc

@Summary		Search competitors
@Description	Gets competitors filtered by optional Nationcode, Sectorcode, Gender and age range (in years).
@Description	Age filters (agemin/agemax) are converted internally to a birthdate range based on today's date.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			nationcode	query		string	false	"Nation code filter (e.g. FIN)"
@Param			sectorcode	query		string	false	"Sector code filter (CC,JP,NK)"
@Param			gender		query		string	false	"Gender filter (M/W)"
@Param			agemin		query		int		false	"Minimum age in years (inclusive). For example, agemin=18 means competitors who are at least 18."
@Param			agemax		query		int		false	"Maximum age in years (inclusive). For example, agemax=30 means competitors who are at most 30."
@Success		200			{object}	swagger.FISCompetitorSearchResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor/search [get]

func (*CompetitorHandler) UpdateCompetitor

func (h *CompetitorHandler) UpdateCompetitor(w http.ResponseWriter, r *http.Request)

UpdateCompetitor godoc

@Summary		Update competitor by ID
@Description	Updates an existing competitor
@Tags			FIS - Competitor Management
@Accept			json
@Produce		json
@Param			competitor	body	swagger.FISUpdateCompetitorExample	true	"Competitor payload"
@Success		200			"Updated"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		404			{object}	swagger.NotFoundResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor [put]

type CompetitorIDParam

type CompetitorIDParam struct {
	CompetitorID string `form:"id" validate:"required,numeric"`
}

type FISAthleteResultCCRow

type FISAthleteResultCCRow struct {
	Recid          int32   `json:"recid"`
	Raceid         *int32  `json:"raceid"`
	Position       *string `json:"position"`
	Timetot        *string `json:"timetot"`
	Competitorid   *int32  `json:"competitorid"`
	Racedate       *string `json:"racedate"`
	Seasoncode     *int32  `json:"seasoncode"`
	Disciplinecode *string `json:"disciplinecode"`
	Catcode        *string `json:"catcode"`
	Place          *string `json:"place"`
}

type FISAthleteResultJPRow

type FISAthleteResultJPRow struct {
	Raceid         *int32  `json:"raceid"`
	Position       *int32  `json:"position"`
	Racedate       *string `json:"racedate"`
	Seasoncode     *int32  `json:"seasoncode"`
	Disciplinecode *string `json:"disciplinecode"`
	Catcode        *string `json:"catcode"`
	Place          *string `json:"place"`

	Posr1     *string `json:"posr1"`
	Speedr1   *string `json:"speedr1"`
	Distr1    *string `json:"distr1"`
	Judptsr1  *string `json:"judptsr1"`
	Windr1    *string `json:"windr1"`
	Windptsr1 *string `json:"windptsr1"`
	Gater1    *string `json:"gater1"`

	Posr2     *string `json:"posr2"`
	Speedr2   *string `json:"speedr2"`
	Distr2    *string `json:"distr2"`
	Judptsr2  *string `json:"judptsr2"`
	Windr2    *string `json:"windr2"`
	Windptsr2 *string `json:"windptsr2"`
	Gater2    *string `json:"gater2"`

	Totrun1 *string `json:"totrun1"`
	Totrun2 *string `json:"totrun2"`
}

type FISAthleteResultNKRow

type FISAthleteResultNKRow struct {
	Recid          int32   `json:"recid"`
	Raceid         *int32  `json:"raceid"`
	Position       *int32  `json:"position"`
	Racedate       *string `json:"racedate"`
	Seasoncode     *int32  `json:"seasoncode"`
	Distance       *string `json:"distance"`
	Hill           *int32  `json:"hill"`
	Disciplinecode *string `json:"disciplinecode"`
	Catcode        *string `json:"catcode"`
	Place          *string `json:"place"`

	Posr1     *string `json:"posr1"`
	Speedr1   *string `json:"speedr1"`
	Distr1    *string `json:"distr1"`
	Judptsr1  *string `json:"judptsr1"`
	Windr1    *string `json:"windr1"`
	Windptsr1 *string `json:"windptsr1"`
	Gater1    *string `json:"gater1"`
	Totrun1   *string `json:"totrun1"`

	Poscc      *string `json:"poscc"`
	Timetot    *string `json:"timetot"`
	Timetotint *int32  `json:"timetotint"`
	Pointsjump *string `json:"pointsjump"`
}

type FISCompetitorResponse

type FISCompetitorResponse struct {
	Competitorid       int32   `json:"competitorid"`
	Personid           *int32  `json:"personid"`
	Ipcid              *int32  `json:"ipcid"`
	Type               *string `json:"type"`
	Sectorcode         *string `json:"sectorcode"`
	Fiscode            *int32  `json:"fiscode"`
	Lastname           *string `json:"lastname"`
	Firstname          *string `json:"firstname"`
	Gender             *string `json:"gender"`
	Birthdate          *string `json:"birthdate"`      // YYYY-MM-DD
	StatusDate         *string `json:"status_date"`    // RFC3339
	Dateofcreation     *string `json:"dateofcreation"` // YYYY-MM-DD
	Lastupdate         *string `json:"lastupdate"`     // RFC3339
	Nationcode         *string `json:"nationcode"`
	Nationalcode       *string `json:"nationalcode"`
	Skiclub            *string `json:"skiclub"`
	Association        *string `json:"association"`
	Status             *string `json:"status"`
	StatusOld          *string `json:"status_old"`
	StatusBy           *string `json:"status_by"`
	Statusnextlist     *string `json:"statusnextlist"`
	Alternatenamecheck *string `json:"alternatenamecheck"`
	Fee                *string `json:"fee"`
	Createdby          *string `json:"createdby"`
	Injury             *int32  `json:"injury"`
	Version            *int32  `json:"version"`
	Compidmssql        *int32  `json:"compidmssql"`
	Carving            *int32  `json:"carving"`
	Photo              *int32  `json:"photo"`
	Notallowed         *int32  `json:"notallowed"`
	Natteam            *string `json:"natteam"`
	Tragroup           *string `json:"tragroup"`
	Published          *int32  `json:"published"`
	Doped              *string `json:"doped"`
	Team               *int32  `json:"team"`
	PhotoBig           *int32  `json:"photo_big"`
	Data               *string `json:"data"`
	Lastupdateby       *string `json:"lastupdateby"`
	Disciplines        *string `json:"disciplines"`
	Deletedat          *string `json:"deletedat"`
	Categorycode       *string `json:"categorycode"`
	Classname          *string `json:"classname"`
	Classcode          *string `json:"classcode"`
}

func FISCompetitorFullFromSqlc

func FISCompetitorFullFromSqlc(row fissqlc.ACompetitor) FISCompetitorResponse

type FISRaceCCFullResponse

type FISRaceCCFullResponse struct {
	Raceid            int32   `json:"raceid"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`
	Starteventdate    *string `json:"starteventdate"`
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Receiveddate      *string `json:"receiveddate"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *string `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Webcomment        *string `json:"webcomment"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"`
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Validdate         *string `json:"validdate"`
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Validforowg       *int32  `json:"validforowg"`
	Lastupdate        *string `json:"lastupdate"`
}

func FISRaceCCFullFromSqlc

func FISRaceCCFullFromSqlc(row fissqlc.ARacecc) FISRaceCCFullResponse

type FISRaceJPFullResponse

type FISRaceJPFullResponse struct {
	Raceid            int32   `json:"raceid"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`
	Starteventdate    *string `json:"starteventdate"`
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Receiveddate      *string `json:"receiveddate"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *int32  `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Webcomment        *string `json:"webcomment"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"`
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Validdate         *string `json:"validdate"`
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Lastupdate        *string `json:"lastupdate"`
	Validforowg       *string `json:"validforowg"`
}

func FISRaceJPFullFromSqlc

func FISRaceJPFullFromSqlc(row fissqlc.ARacejp) FISRaceJPFullResponse

type FISRaceNKFullResponse

type FISRaceNKFullResponse struct {
	Raceid            int32   `json:"raceid"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`
	Starteventdate    *string `json:"starteventdate"`
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Receiveddate      *string `json:"receiveddate"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *int32  `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Webcomment        *string `json:"webcomment"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"`
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Validdate         *string `json:"validdate"`
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Validforowg       *int32  `json:"validforowg"`
	Lastupdate        *string `json:"lastupdate"`
}

func FISRaceNKFullFromSqlc

func FISRaceNKFullFromSqlc(row fissqlc.ARacenk) FISRaceNKFullResponse

type FISResultCCFullResponse

type FISResultCCFullResponse struct {
	Recid          int32   `json:"recid"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Reason         *string `json:"reason"`
	Position       *string `json:"position"`
	Pf             *int32  `json:"pf"`
	Status2        *string `json:"status2"`
	Bib            *string `json:"bib"`
	Bibcolor       *string `json:"bibcolor"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Stage          *string `json:"stage"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Timer1         *string `json:"timer1"`
	Timer2         *string `json:"timer2"`
	Timer3         *string `json:"timer3"`
	Timetot        *string `json:"timetot"`
	Valid          *string `json:"valid"`
	Racepoints     *string `json:"racepoints"`
	Cuppoints      *string `json:"cuppoints"`
	Bonustime      *string `json:"bonustime"`
	Bonuscuppoints *string `json:"bonuscuppoints"`
	Version        *string `json:"version"`
	Rg1            *string `json:"rg1"`
	Rg2            *string `json:"rg2"`
	Lastupdate     *string `json:"lastupdate"`
}

func FISResultCCFullFromSqlc

func FISResultCCFullFromSqlc(row fissqlc.AResultcc) FISResultCCFullResponse

type FISResultJPFullResponse

type FISResultJPFullResponse struct {
	Recid          int32   `json:"recid"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Status2        *string `json:"status2"`
	Position       *int32  `json:"position"`
	Bib            *int32  `json:"bib"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Stage          *string `json:"stage"`

	J1r1     *string `json:"j1r1"`
	J2r1     *string `json:"j2r1"`
	J3r1     *string `json:"j3r1"`
	J4r1     *string `json:"j4r1"`
	J5r1     *string `json:"j5r1"`
	Speedr1  *string `json:"speedr1"`
	Distr1   *string `json:"distr1"`
	Disptsr1 *string `json:"disptsr1"`
	Judptsr1 *string `json:"judptsr1"`
	Totrun1  *string `json:"totrun1"`
	Posr1    *string `json:"posr1"`
	Statusr1 *string `json:"statusr1"`

	J1r2     *string `json:"j1r2"`
	J2r2     *string `json:"j2r2"`
	J3r2     *string `json:"j3r2"`
	J4r2     *string `json:"j4r2"`
	J5r2     *string `json:"j5r2"`
	Speedr2  *string `json:"speedr2"`
	Distr2   *string `json:"distr2"`
	Disptsr2 *string `json:"disptsr2"`
	Judptsr2 *string `json:"judptsr2"`
	Totrun2  *string `json:"totrun2"`
	Posr2    *string `json:"posr2"`
	Statusr2 *string `json:"statusr2"`

	J1r3     *string `json:"j1r3"`
	J2r3     *string `json:"j2r3"`
	J3r3     *string `json:"j3r3"`
	J4r3     *string `json:"j4r3"`
	J5r3     *string `json:"j5r3"`
	Speedr3  *string `json:"speedr3"`
	Distr3   *string `json:"distr3"`
	Disptsr3 *string `json:"disptsr3"`
	Judptsr3 *string `json:"judptsr3"`
	Totrun3  *string `json:"totrun3"`
	Posr3    *string `json:"posr3"`
	Statusr3 *string `json:"statusr3"`

	J1r4     *string `json:"j1r4"`
	J2r4     *string `json:"j2r4"`
	J3r4     *string `json:"j3r4"`
	J4r4     *string `json:"j4r4"`
	J5r4     *string `json:"j5r4"`
	Speedr4  *string `json:"speedr4"`
	Distr4   *string `json:"distr4"`
	Disptsr4 *string `json:"disptsr4"`
	Judptsr4 *string `json:"judptsr4"`

	Gater1    *string `json:"gater1"`
	Gater2    *string `json:"gater2"`
	Gater3    *string `json:"gater3"`
	Gater4    *string `json:"gater4"`
	Gateptsr1 *string `json:"gateptsr1"`
	Gateptsr2 *string `json:"gateptsr2"`
	Gateptsr3 *string `json:"gateptsr3"`
	Gateptsr4 *string `json:"gateptsr4"`

	Windr1    *string `json:"windr1"`
	Windr2    *string `json:"windr2"`
	Windr3    *string `json:"windr3"`
	Windr4    *string `json:"windr4"`
	Windptsr1 *string `json:"windptsr1"`
	Windptsr2 *string `json:"windptsr2"`
	Windptsr3 *string `json:"windptsr3"`
	Windptsr4 *string `json:"windptsr4"`

	Reason     *string `json:"reason"`
	Totrun4    *string `json:"totrun4"`
	Tot        *string `json:"tot"`
	Valid      *int32  `json:"valid"`
	Racepoints *string `json:"racepoints"`
	Cuppoints  *string `json:"cuppoints"`
	Version    *string `json:"version"`
	Lastupdate *string `json:"lastupdate"`
	Posr4      *string `json:"posr4"`
	Statusr4   *string `json:"statusr4"`
}

func FISResultJPFullFromSqlc

func FISResultJPFullFromSqlc(row fissqlc.AResultjp) FISResultJPFullResponse

type FISResultNKFullResponse

type FISResultNKFullResponse struct {
	Recid          int32   `json:"recid"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Status2        *string `json:"status2"`
	Reason         *string `json:"reason"`
	Position       *int32  `json:"position"`
	Pf             *int32  `json:"pf"`
	Bib            *int32  `json:"bib"`
	Bibcolor       *string `json:"bibcolor"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Stage          *string `json:"stage"`

	J1r1      *string `json:"j1r1"`
	J2r1      *string `json:"j2r1"`
	J3r1      *string `json:"j3r1"`
	J4r1      *string `json:"j4r1"`
	J5r1      *string `json:"j5r1"`
	Speedr1   *string `json:"speedr1"`
	Distr1    *string `json:"distr1"`
	Disptsr1  *string `json:"disptsr1"`
	Judptsr1  *string `json:"judptsr1"`
	Gater1    *string `json:"gater1"`
	Gateptsr1 *string `json:"gateptsr1"`
	Windr1    *string `json:"windr1"`
	Windptsr1 *string `json:"windptsr1"`
	Totrun1   *string `json:"totrun1"`
	Posr1     *string `json:"posr1"`
	Statusr1  *string `json:"statusr1"`

	J1r2      *string `json:"j1r2"`
	J2r2      *string `json:"j2r2"`
	J3r2      *string `json:"j3r2"`
	J4r2      *string `json:"j4r2"`
	J5r2      *string `json:"j5r2"`
	Speedr2   *string `json:"speedr2"`
	Distr2    *string `json:"distr2"`
	Disptsr2  *string `json:"disptsr2"`
	Judptsr2  *string `json:"judptsr2"`
	Gater2    *string `json:"gater2"`
	Gateptsr2 *string `json:"gateptsr2"`
	Windr2    *string `json:"windr2"`
	Windptsr2 *string `json:"windptsr2"`
	Totrun2   *string `json:"totrun2"`
	Posr2     *string `json:"posr2"`
	Statusr2  *string `json:"statusr2"`

	Pointsjump *string `json:"pointsjump"`
	Behindjump *string `json:"behindjump"`
	Posjump    *string `json:"posjump"`
	Timecc     *string `json:"timecc"`
	Timeccint  *string `json:"timeccint"`
	Poscc      *string `json:"poscc"`
	Starttime  *string `json:"starttime"`
	Statuscc   *string `json:"statuscc"`
	Totbehind  *string `json:"totbehind"`
	Timetot    *string `json:"timetot"`
	Timetotint *int32  `json:"timetotint"`
	Valid      *int32  `json:"valid"`
	Racepoints *string `json:"racepoints"`
	Cuppoints  *string `json:"cuppoints"`
	Version    *string `json:"version"`
	Lastupdate *string `json:"lastupdate"`
}

func FISResultNKFullFromSqlc

func FISResultNKFullFromSqlc(row fissqlc.AResultnk) FISResultNKFullResponse

type InsertAthleteInput

type InsertAthleteInput struct {
	Fiscode   int32   `json:"fiscode" validate:"required"`
	Sporttiid *int32  `json:"sporttiid"`
	Firstname *string `json:"firstname"`
	Lastname  *string `json:"lastname"`
}

type InsertCompetitorInput

type InsertCompetitorInput struct {
	Competitorid       int32   `json:"competitorid" validate:"required"`
	Personid           *int32  `json:"personid"`
	Ipcid              *int32  `json:"ipcid"`
	Fiscode            *int32  `json:"fiscode"`
	Birthdate          *string `json:"birthdate"`
	StatusDate         *string `json:"status_date"`
	Fee                *string `json:"fee"`
	Dateofcreation     *string `json:"dateofcreation"`
	Injury             *int32  `json:"injury"`
	Version            *int32  `json:"version"`
	Compidmssql        *int32  `json:"compidmssql"`
	Carving            *int32  `json:"carving"`
	Photo              *int32  `json:"photo"`
	Notallowed         *int32  `json:"notallowed"`
	Published          *int32  `json:"published"`
	Team               *int32  `json:"team"`
	PhotoBig           *int32  `json:"photo_big"`
	Lastupdate         *string `json:"lastupdate"`
	Statusnextlist     *string `json:"statusnextlist"`
	Alternatenamecheck *string `json:"alternatenamecheck"`
	Deletedat          *string `json:"deletedat"`
	Doped              *string `json:"doped"`
	Createdby          *string `json:"createdby"`
	Categorycode       *string `json:"categorycode"`
	Classname          *string `json:"classname"`
	Data               *string `json:"data"`
	Lastupdateby       *string `json:"lastupdateby"`
	Disciplines        *string `json:"disciplines"`
	Type               *string `json:"type"`
	Sectorcode         *string `json:"sectorcode"`
	Classcode          *string `json:"classcode"`
	Lastname           *string `json:"lastname"`
	Firstname          *string `json:"firstname"`
	Gender             *string `json:"gender"`
	Natteam            *string `json:"natteam"`
	Nationcode         *string `json:"nationcode"`
	Nationalcode       *string `json:"nationalcode"`
	Skiclub            *string `json:"skiclub"`
	Association        *string `json:"association"`
	Status             *string `json:"status"`
	StatusOld          *string `json:"status_old"`
	StatusBy           *string `json:"status_by"`
	Tragroup           *string `json:"tragroup"`
}

type InsertRaceCCInput

type InsertRaceCCInput struct {
	Raceid            int32   `json:"raceid" validate:"required"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`       // YYYY-MM-DD
	Starteventdate    *string `json:"starteventdate"` // YYYY-MM-DD
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Receiveddate      *string `json:"receiveddate"` // RFC3339 or date
	Validdate         *string `json:"validdate"`    // RFC3339 or date
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Webcomment        *string `json:"webcomment"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *string `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"`
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Validforowg       *int32  `json:"validforowg"`
	Lastupdate        *string `json:"lastupdate"` // RFC3339
}

type InsertRaceJPInput

type InsertRaceJPInput struct {
	Raceid            int32   `json:"raceid" validate:"required"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`       // YYYY-MM-DD
	Starteventdate    *string `json:"starteventdate"` // YYYY-MM-DD
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Receiveddate      *string `json:"receiveddate"` // RFC3339
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *int32  `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Webcomment        *string `json:"webcomment"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"` // RFC3339 time-of-day
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Validdate         *string `json:"validdate"` // RFC3339
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Lastupdate        *string `json:"lastupdate"`  // RFC3339
	Validforowg       *string `json:"validforowg"` // varchar
}

type InsertRaceNKInput

type InsertRaceNKInput struct {
	Raceid            int32   `json:"raceid" validate:"required"`
	Eventid           *int32  `json:"eventid"`
	Seasoncode        *int32  `json:"seasoncode"`
	Racecodex         *int32  `json:"racecodex"`
	Disciplineid      *string `json:"disciplineid"`
	Disciplinecode    *string `json:"disciplinecode"`
	Catcode           *string `json:"catcode"`
	Catcode2          *string `json:"catcode2"`
	Catcode3          *string `json:"catcode3"`
	Catcode4          *string `json:"catcode4"`
	Gender            *string `json:"gender"`
	Racedate          *string `json:"racedate"`       // YYYY-MM-DD
	Starteventdate    *string `json:"starteventdate"` // YYYY-MM-DD
	Description       *string `json:"description"`
	Place             *string `json:"place"`
	Nationcode        *string `json:"nationcode"`
	Receiveddate      *string `json:"receiveddate"` // RFC3339
	Validdate         *string `json:"validdate"`    // RFC3339
	Td1id             *int32  `json:"td1id"`
	Td1name           *string `json:"td1name"`
	Td1nation         *string `json:"td1nation"`
	Td1code           *int32  `json:"td1code"`
	Td2id             *int32  `json:"td2id"`
	Td2name           *string `json:"td2name"`
	Td2nation         *string `json:"td2nation"`
	Td2code           *int32  `json:"td2code"`
	Calstatuscode     *string `json:"calstatuscode"`
	Procstatuscode    *string `json:"procstatuscode"`
	Pursuit           *string `json:"pursuit"`
	Masse             *string `json:"masse"`
	Relay             *string `json:"relay"`
	Distance          *string `json:"distance"`
	Hill              *int32  `json:"hill"`
	Style             *string `json:"style"`
	Qualif            *string `json:"qualif"`
	Finale            *string `json:"finale"`
	Homol             *string `json:"homol"`
	Webcomment        *string `json:"webcomment"`
	Displaystatus     *string `json:"displaystatus"`
	Fisinterncomment  *string `json:"fisinterncomment"`
	Published         *int32  `json:"published"`
	Validforfispoints *int32  `json:"validforfispoints"`
	Usedfislist       *string `json:"usedfislist"`
	Tolist            *string `json:"tolist"`
	Discforlistcode   *string `json:"discforlistcode"`
	Calculatedpenalty *string `json:"calculatedpenalty"`
	Appliedpenalty    *string `json:"appliedpenalty"`
	Appliedscala      *string `json:"appliedscala"`
	Penscafixed       *string `json:"penscafixed"`
	Version           *int32  `json:"version"`
	Nationraceid      *int32  `json:"nationraceid"`
	Provraceid        *int32  `json:"provraceid"`
	Msql7evid         *int32  `json:"msql7evid"`
	Mssql7id          *int32  `json:"mssql7id"`
	Results           *int32  `json:"results"`
	Pdf               *int32  `json:"pdf"`
	Topbanner         *string `json:"topbanner"`
	Bottombanner      *string `json:"bottombanner"`
	Gallery           *string `json:"gallery"`
	Indi              *int32  `json:"indi"`
	Team              *int32  `json:"team"`
	Tabcount          *int32  `json:"tabcount"`
	Columncount       *int32  `json:"columncount"`
	Level             *string `json:"level"`
	Hloc1             *string `json:"hloc1"` // RFC3339
	Hloc2             *string `json:"hloc2"`
	Hloc3             *string `json:"hloc3"`
	Hcet1             *string `json:"hcet1"`
	Hcet2             *string `json:"hcet2"`
	Hcet3             *string `json:"hcet3"`
	Live              *int32  `json:"live"`
	Livestatus1       *string `json:"livestatus1"`
	Livestatus2       *string `json:"livestatus2"`
	Livestatus3       *string `json:"livestatus3"`
	Liveinfo1         *string `json:"liveinfo1"`
	Liveinfo2         *string `json:"liveinfo2"`
	Liveinfo3         *string `json:"liveinfo3"`
	Passwd            *string `json:"passwd"`
	Noepr             *int32  `json:"noepr"`
	Tddoc             *int32  `json:"tddoc"`
	Timingreport      *int32  `json:"timingreport"`
	SpecialCupPoints  *int32  `json:"special_cup_points"`
	SkipWcsl          *int32  `json:"skip_wcsl"`
	Validforowg       *int32  `json:"validforowg"`
	Lastupdate        *string `json:"lastupdate"` // RFC3339
}

type InsertResultCCInput

type InsertResultCCInput struct {
	Recid          int32   `json:"recid" validate:"required"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Reason         *string `json:"reason"`
	Position       *string `json:"position"`
	Pf             *int32  `json:"pf"`
	Status2        *string `json:"status2"`
	Bib            *string `json:"bib"`
	Bibcolor       *string `json:"bibcolor"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Stage          *string `json:"stage"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Timer1         *string `json:"timer1"`
	Timer2         *string `json:"timer2"`
	Timer3         *string `json:"timer3"`
	Timetot        *string `json:"timetot"`
	Valid          *string `json:"valid"`
	Racepoints     *string `json:"racepoints"`
	Cuppoints      *string `json:"cuppoints"`
	Bonustime      *string `json:"bonustime"`
	Bonuscuppoints *string `json:"bonuscuppoints"`
	Version        *string `json:"version"`
	Rg1            *string `json:"rg1"`
	Rg2            *string `json:"rg2"`
	Lastupdate     *string `json:"lastupdate"` // RFC3339
}

type InsertResultJPInput

type InsertResultJPInput struct {
	Recid          int32   `json:"recid" validate:"required"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Status2        *string `json:"status2"`
	Position       *int32  `json:"position"`
	Bib            *int32  `json:"bib"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Stage          *string `json:"stage"`

	J1r1     *string `json:"j1r1"`
	J2r1     *string `json:"j2r1"`
	J3r1     *string `json:"j3r1"`
	J4r1     *string `json:"j4r1"`
	J5r1     *string `json:"j5r1"`
	Speedr1  *string `json:"speedr1"`
	Distr1   *string `json:"distr1"`
	Disptsr1 *string `json:"disptsr1"`
	Judptsr1 *string `json:"judptsr1"`
	Totrun1  *string `json:"totrun1"`
	Posr1    *string `json:"posr1"`
	Statusr1 *string `json:"statusr1"`

	J1r2     *string `json:"j1r2"`
	J2r2     *string `json:"j2r2"`
	J3r2     *string `json:"j3r2"`
	J4r2     *string `json:"j4r2"`
	J5r2     *string `json:"j5r2"`
	Speedr2  *string `json:"speedr2"`
	Distr2   *string `json:"distr2"`
	Disptsr2 *string `json:"disptsr2"`
	Judptsr2 *string `json:"judptsr2"`
	Totrun2  *string `json:"totrun2"`
	Posr2    *string `json:"posr2"`
	Statusr2 *string `json:"statusr2"`

	J1r3     *string `json:"j1r3"`
	J2r3     *string `json:"j2r3"`
	J3r3     *string `json:"j3r3"`
	J4r3     *string `json:"j4r3"`
	J5r3     *string `json:"j5r3"`
	Speedr3  *string `json:"speedr3"`
	Distr3   *string `json:"distr3"`
	Disptsr3 *string `json:"disptsr3"`
	Judptsr3 *string `json:"judptsr3"`
	Totrun3  *string `json:"totrun3"`
	Posr3    *string `json:"posr3"`
	Statusr3 *string `json:"statusr3"`

	J1r4     *string `json:"j1r4"`
	J2r4     *string `json:"j2r4"`
	J3r4     *string `json:"j3r4"`
	J4r4     *string `json:"j4r4"`
	J5r4     *string `json:"j5r4"`
	Speedr4  *string `json:"speedr4"`
	Distr4   *string `json:"distr4"`
	Disptsr4 *string `json:"disptsr4"`
	Judptsr4 *string `json:"judptsr4"`

	Gater1    *string `json:"gater1"`
	Gater2    *string `json:"gater2"`
	Gater3    *string `json:"gater3"`
	Gater4    *string `json:"gater4"`
	Gateptsr1 *string `json:"gateptsr1"`
	Gateptsr2 *string `json:"gateptsr2"`
	Gateptsr3 *string `json:"gateptsr3"`
	Gateptsr4 *string `json:"gateptsr4"`

	Windr1    *string `json:"windr1"`
	Windr2    *string `json:"windr2"`
	Windr3    *string `json:"windr3"`
	Windr4    *string `json:"windr4"`
	Windptsr1 *string `json:"windptsr1"`
	Windptsr2 *string `json:"windptsr2"`
	Windptsr3 *string `json:"windptsr3"`
	Windptsr4 *string `json:"windptsr4"`

	Reason     *string `json:"reason"`
	Totrun4    *string `json:"totrun4"`
	Tot        *string `json:"tot"`
	Valid      *int32  `json:"valid"`
	Racepoints *string `json:"racepoints"`
	Cuppoints  *string `json:"cuppoints"`
	Version    *string `json:"version"`
	Lastupdate *string `json:"lastupdate"` // RFC3339
	Posr4      *string `json:"posr4"`
	Statusr4   *string `json:"statusr4"`
}

type InsertResultNKInput

type InsertResultNKInput struct {
	Recid          int32   `json:"recid" validate:"required"`
	Raceid         *int32  `json:"raceid"`
	Competitorid   *int32  `json:"competitorid"`
	Status         *string `json:"status"`
	Status2        *string `json:"status2"`
	Reason         *string `json:"reason"`
	Position       *int32  `json:"position"`
	Pf             *int32  `json:"pf"`
	Bib            *int32  `json:"bib"`
	Bibcolor       *string `json:"bibcolor"`
	Fiscode        *int32  `json:"fiscode"`
	Competitorname *string `json:"competitorname"`
	Nationcode     *string `json:"nationcode"`
	Level          *string `json:"level"`
	Heat           *string `json:"heat"`
	Stage          *string `json:"stage"`

	J1r1      *string `json:"j1r1"`
	J2r1      *string `json:"j2r1"`
	J3r1      *string `json:"j3r1"`
	J4r1      *string `json:"j4r1"`
	J5r1      *string `json:"j5r1"`
	Speedr1   *string `json:"speedr1"`
	Distr1    *string `json:"distr1"`
	Disptsr1  *string `json:"disptsr1"`
	Judptsr1  *string `json:"judptsr1"`
	Gater1    *string `json:"gater1"`
	Gateptsr1 *string `json:"gateptsr1"`
	Windr1    *string `json:"windr1"`
	Windptsr1 *string `json:"windptsr1"`
	Totrun1   *string `json:"totrun1"`
	Posr1     *string `json:"posr1"`
	Statusr1  *string `json:"statusr1"`

	J1r2      *string `json:"j1r2"`
	J2r2      *string `json:"j2r2"`
	J3r2      *string `json:"j3r2"`
	J4r2      *string `json:"j4r2"`
	J5r2      *string `json:"j5r2"`
	Speedr2   *string `json:"speedr2"`
	Distr2    *string `json:"distr2"`
	Disptsr2  *string `json:"disptsr2"`
	Judptsr2  *string `json:"judptsr2"`
	Gater2    *string `json:"gater2"`
	Gateptsr2 *string `json:"gateptsr2"`
	Windr2    *string `json:"windr2"`
	Windptsr2 *string `json:"windptsr2"`
	Totrun2   *string `json:"totrun2"`
	Posr2     *string `json:"posr2"`
	Statusr2  *string `json:"statusr2"`

	Pointsjump *string `json:"pointsjump"`
	Behindjump *string `json:"behindjump"`
	Posjump    *string `json:"posjump"`
	Timecc     *string `json:"timecc"`
	Timeccint  *string `json:"timeccint"`
	Poscc      *string `json:"poscc"`
	Starttime  *string `json:"starttime"`
	Statuscc   *string `json:"statuscc"`
	Totbehind  *string `json:"totbehind"`
	Timetot    *string `json:"timetot"`
	Timetotint *int32  `json:"timetotint"`
	Valid      *int32  `json:"valid"`
	Racepoints *string `json:"racepoints"`
	Cuppoints  *string `json:"cuppoints"`
	Version    *string `json:"version"`
	Lastupdate *string `json:"lastupdate"` // RFC3339
}

type NationsBySectorResponse

type NationsBySectorResponse struct {
	Nations []string `json:"nations"`
}

type RaceCCHandler

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

func NewRaceCCHandler

func NewRaceCCHandler(store fis.Racecc, cache *cache.Storage) *RaceCCHandler

func (*RaceCCHandler) DeleteRaceCC

func (h *RaceCCHandler) DeleteRaceCC(w http.ResponseWriter, r *http.Request)

DeleteRaceCC godoc

@Summary		Delete Cross-Country race
@Description	Deletes a race by RaceID
@Tags			FIS - Race Management – Cross-Country
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Race ID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racecc [delete]

func (*RaceCCHandler) GetCategoryCodesCC

func (h *RaceCCHandler) GetCategoryCodesCC(w http.ResponseWriter, r *http.Request)

GetCategoryCodesCC godoc

@Summary	Get Cross-Country category codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISCategoriesCCResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/catcodeCC [get]

func (*RaceCCHandler) GetDisciplineCodesCC

func (h *RaceCCHandler) GetDisciplineCodesCC(w http.ResponseWriter, r *http.Request)

GetDisciplineCodesCC godoc

@Summary	Get Cross-Country discipline codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISDisciplinesCCResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/disciplinecodeCC [get]

func (*RaceCCHandler) GetLastRowRaceCC

func (h *RaceCCHandler) GetLastRowRaceCC(w http.ResponseWriter, r *http.Request)

GetLastRowRaceCC godoc

@Summary		Get last Cross-Country race record
@Description	Returns the last row in a_racecc (by RaceID DESC)
@Tags			FIS - Race Management – Cross-Country
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastRaceCCResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/racecc [get]

func (*RaceCCHandler) GetRacesCC

func (h *RaceCCHandler) GetRacesCC(w http.ResponseWriter, r *http.Request)

GetRacesCC godoc

@Summary	Get list of Cross-Country races
@Tags		FIS - Race Data
@Accept		json
@Produce	json
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISRacesCCResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/racecc [get]

func (*RaceCCHandler) GetSeasonCodesCC

func (h *RaceCCHandler) GetSeasonCodesCC(w http.ResponseWriter, r *http.Request)

GetSeasonCodesCC godoc

@Summary	Get Cross-Country season codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISSeasonsCCResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/seasoncodeCC [get]

func (*RaceCCHandler) InsertRaceCC

func (h *RaceCCHandler) InsertRaceCC(w http.ResponseWriter, r *http.Request)

InsertRaceCC godoc

@Summary		Add new Cross-Country race
@Description	Inserts a new a_racecc row
@Tags			FIS - Race Management – Cross-Country
@Accept			json
@Produce		json
@Param			racecc	body	swagger.FISInsertRaceCCExample	true	"Race payload"
@Success		201		"Created"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		409		{object}	swagger.ConflictResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racecc [post]

func (*RaceCCHandler) UpdateRaceCC

func (h *RaceCCHandler) UpdateRaceCC(w http.ResponseWriter, r *http.Request)

UpdateRaceCC godoc

@Summary		Update Cross-Country race by ID
@Description	Updates an existing a_racecc row
@Tags			FIS - Race Management – Cross-Country
@Accept			json
@Produce		json
@Param			racecc	body	swagger.FISUpdateRaceCCExample	true	"Race payload"
@Success		200		"Updated"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		404		{object}	swagger.NotFoundResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racecc [put]

type RaceJPHandler

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

func NewRaceJPHandler

func NewRaceJPHandler(store fis.Racejp, cache *cache.Storage) *RaceJPHandler

func (*RaceJPHandler) DeleteRaceJP

func (h *RaceJPHandler) DeleteRaceJP(w http.ResponseWriter, r *http.Request)

DeleteRaceJP godoc

@Summary		Delete Ski Jumping race
@Description	Deletes a race by RaceID
@Tags			FIS - Race Management – Ski Jumping
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Race ID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racejp [delete]

func (*RaceJPHandler) GetCategoryCodesJP

func (h *RaceJPHandler) GetCategoryCodesJP(w http.ResponseWriter, r *http.Request)

GetCategoryCodesJP godoc

@Summary	Get Ski Jumping category codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISCategoriesJPResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/catcodeJP [get]

func (*RaceJPHandler) GetDisciplineCodesJP

func (h *RaceJPHandler) GetDisciplineCodesJP(w http.ResponseWriter, r *http.Request)

GetDisciplineCodesJP godoc

@Summary	Get Ski Jumping discipline codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISDisciplinesJPResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/disciplinecodeJP [get]

func (*RaceJPHandler) GetLastRowRaceJP

func (h *RaceJPHandler) GetLastRowRaceJP(w http.ResponseWriter, r *http.Request)

GetLastRowRaceJP godoc

@Summary		Get last Ski Jumping race record
@Description	Returns the last row in a_racejp (by RaceID DESC)
@Tags			FIS - Race Management – Ski Jumping
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastRaceJPResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/racejp [get]

func (*RaceJPHandler) GetRacesJP

func (h *RaceJPHandler) GetRacesJP(w http.ResponseWriter, r *http.Request)

GetRacesJP godoc

@Summary	Get list of Ski Jumping races
@Tags		FIS - Race Data
@Accept		json
@Produce	json
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISRacesJPResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/racejp [get]

func (*RaceJPHandler) GetSeasonCodesJP

func (h *RaceJPHandler) GetSeasonCodesJP(w http.ResponseWriter, r *http.Request)

GetSeasonCodesJP godoc

@Summary	Get Ski Jumping season codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISSeasonsJPResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/seasoncodeJP [get]

func (*RaceJPHandler) InsertRaceJP

func (h *RaceJPHandler) InsertRaceJP(w http.ResponseWriter, r *http.Request)

InsertRaceJP godoc

@Summary		Add new Ski Jumping race
@Description	Inserts a new a_racejp row
@Tags			FIS - Race Management – Ski Jumping
@Accept			json
@Produce		json
@Param			racejp	body	swagger.FISInsertRaceJPExample	true	"Race payload"
@Success		201		"Created"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		409		{object}	swagger.ConflictResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racejp [post]

func (*RaceJPHandler) UpdateRaceJP

func (h *RaceJPHandler) UpdateRaceJP(w http.ResponseWriter, r *http.Request)

UpdateRaceJP godoc

@Summary		Update Ski Jumping race by ID
@Description	Updates an existing a_racejp row
@Tags			FIS - Race Management – Ski Jumping
@Accept			json
@Produce		json
@Param			racejp	body	swagger.FISUpdateRaceJPExample	true	"Race payload"
@Success		200		"Updated"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		404		{object}	swagger.NotFoundResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racejp [put]

type RaceNKHandler

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

func NewRaceNKHandler

func NewRaceNKHandler(store fis.Racenk, cache *cache.Storage) *RaceNKHandler

func (*RaceNKHandler) DeleteRaceNK

func (h *RaceNKHandler) DeleteRaceNK(w http.ResponseWriter, r *http.Request)

DeleteRaceNK godoc

@Summary		Delete Nordic Combined race
@Description	Deletes a race by RaceID
@Tags			FIS - Race Management – Nordic Combined
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Race ID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racenk [delete]

func (*RaceNKHandler) GetCategoryCodesNK

func (h *RaceNKHandler) GetCategoryCodesNK(w http.ResponseWriter, r *http.Request)

GetCategoryCodesNK godoc

@Summary	Get Nordic Combined category codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISCategoriesNKResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/catcodeNK [get]

func (*RaceNKHandler) GetDisciplineCodesNK

func (h *RaceNKHandler) GetDisciplineCodesNK(w http.ResponseWriter, r *http.Request)

GetDisciplineCodesNK godoc

@Summary	Get Nordic Combined discipline codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISDisciplinesNKResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/disciplinecodeNK [get]

func (*RaceNKHandler) GetLastRowRaceNK

func (h *RaceNKHandler) GetLastRowRaceNK(w http.ResponseWriter, r *http.Request)

GetLastRowRaceNK godoc

@Summary		Get last Nordic Combined race record
@Description	Returns the last row in a_racenk (by RaceID DESC)
@Tags			FIS - Race Management – Nordic Combined
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastRaceNKResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/racenk [get]

func (*RaceNKHandler) GetRacesNK

func (h *RaceNKHandler) GetRacesNK(w http.ResponseWriter, r *http.Request)

GetRacesNK godoc

@Summary	Get list of Nordic Combined races
@Tags		FIS - Race Data
@Accept		json
@Produce	json
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISRacesNKResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/racenk [get]

func (*RaceNKHandler) GetSeasonCodesNK

func (h *RaceNKHandler) GetSeasonCodesNK(w http.ResponseWriter, r *http.Request)

GetSeasonCodesNK godoc

@Summary	Get Nordic Combined season codes
@Tags		FIS - Season Discipline & Category Codes
@Accept		json
@Produce	json
@Success	200	{object}	swagger.FISSeasonsNKResponse
@Failure	400	{object}	swagger.ValidationErrorResponse
@Failure	401	{object}	swagger.UnauthorizedResponse
@Failure	403	{object}	swagger.ForbiddenResponse
@Failure	500	{object}	swagger.InternalServerErrorResponse
@Failure	503	{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/seasoncodeNK [get]

func (*RaceNKHandler) InsertRaceNK

func (h *RaceNKHandler) InsertRaceNK(w http.ResponseWriter, r *http.Request)

InsertRaceNK godoc

@Summary		Add new Nordic Combined race
@Description	Inserts a new a_racenk row
@Tags			FIS - Race Management – Nordic Combined
@Accept			json
@Produce		json
@Param			racenk	body	swagger.FISInsertRaceNKExample	true	"Race payload"
@Success		201		"Created"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		409		{object}	swagger.ConflictResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racenk [post]

func (*RaceNKHandler) UpdateRaceNK

func (h *RaceNKHandler) UpdateRaceNK(w http.ResponseWriter, r *http.Request)

UpdateRaceNK godoc

@Summary		Update Nordic Combined race by ID
@Description	Updates an existing a_racenk row
@Tags			FIS - Race Management – Nordic Combined
@Accept			json
@Produce		json
@Param			racenk	body	swagger.FISUpdateRaceNKExample	true	"Race payload"
@Success		200		"Updated"
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		404		{object}	swagger.NotFoundResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/racenk [put]

type RaceNationCountItem

type RaceNationCountItem struct {
	Nationcode string `json:"nationcode" example:"FIN"`
	Total      int64  `json:"total" example:"42"`
}

type RaceSearchHandler

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

func NewRaceSearchHandler

func NewRaceSearchHandler(
	raceCC fis.Racecc,
	raceJP fis.Racejp,
	raceNK fis.Racenk,
	cache *cache.Storage,
) *RaceSearchHandler

func (*RaceSearchHandler) GetRaceCategoryCounts

func (h *RaceSearchHandler) GetRaceCategoryCounts(w http.ResponseWriter, r *http.Request)

GetRaceCategoryCounts godoc

@Summary		Get race counts by category
@Description	Gets counts of races grouped by category code (Catcode) for a given season and selected sector(s). Optional filters: Nationcode, Gender.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			seasoncode	query		int32		true	"Season code"
@Param			sector		query		[]string	true	"Sector code(s) (CC,JP,NK – repeat or comma-separated, e.g. sector=CC&sector=JP or sector=CC,JP)"
@Param			nationcode	query		string		false	"Nation code filter (e.g. FIN)"
@Param			gender		query		string		false	"Gender filter (e.g. M/W)"
@Success		200			{object}	swagger.FISRacesCategoryCountsResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/races/count-by-category [get]

func (*RaceSearchHandler) GetRaceCountsByNation

func (h *RaceSearchHandler) GetRaceCountsByNation(w http.ResponseWriter, r *http.Request)

GetRaceCountsByNation godoc

@Summary		Get race counts by nation
@Description	Get counts of races grouped by Nationcodes for a given season and one or more sectors (CC, JP, NK). Optional filters: gender, catcode.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			sector		query		[]string	true	"Sector code(s) (CC,JP,NK – repeat or comma-separated, e.g. sector=CC&sector=JP or sector=CC,JP)"
@Param			seasoncode	query		int32		true	"Season code"
@Param			gender		query		string		false	"Gender (M/W)"
@Param			catcode		query		string		false	"Category code (e.g. WC)"
@Success		200			{object}	swagger.FISRacesNationCountsResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/races/count-by-nation [get]

func (*RaceSearchHandler) GetRaceTotals

func (h *RaceSearchHandler) GetRaceTotals(w http.ResponseWriter, r *http.Request)

GetRaceTotals godoc

@Summary		Get total race count
@Description	Gets total count of races for a given season and one or more sectors (CC, JP, NK). Optional filters: Catcode, Gender.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			seasoncode	query		int32		true	"Season code"
@Param			sector		query		[]string	true	"Sector code(s) (CC,JP,NK – repeat or comma-separated, e.g. sector=CC&sector=JP or sector=CC,JP)"
@Param			catcode		query		string		false	"Category code filter (e.g. WC)"
@Param			gender		query		string		false	"Gender filter (e.g. M/W)"
@Success		200			{object}	swagger.FISRacesTotalsResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/races/count-total [get]

func (*RaceSearchHandler) GetRacesByIDs

func (h *RaceSearchHandler) GetRacesByIDs(w http.ResponseWriter, r *http.Request)

GetRacesByIDs godoc

@Summary		Get races by IDs
@Description	Gets race(s) for a given sector and one or more race IDs.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			sector	query		string	true	"Sector code (CC,JP,NK)"
@Param			raceid	query		[]int32	true	"Race ID(s) – repeat or comma-separated (e.g. raceid=123&raceid=456 or raceid=123,456)"
@Success		200		{object}	swagger.FISRacesByIDsResponse
@Failure		400		{object}	swagger.ValidationErrorResponse
@Failure		401		{object}	swagger.UnauthorizedResponse
@Failure		403		{object}	swagger.ForbiddenResponse
@Failure		500		{object}	swagger.InternalServerErrorResponse
@Failure		503		{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/races/by-ids [get]

func (*RaceSearchHandler) SearchRaces

func (h *RaceSearchHandler) SearchRaces(w http.ResponseWriter, r *http.Request)

SearchRaces godoc

@Summary		Search races across sectors
@Description	Gets all Races with optional filters (Nationcode, Seasoncode, Gender, Catcode) for each selected sector (NK, CC, JP). If sector is omitted, all sectors are used.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			sector		query		[]string	false	"Sector code (CC,JP,NK – repeat or comma-separated; if omitted, all sectors are used)"
@Param			seasoncode	query		int32		false	"Season code"
@Param			nationcode	query		string		false	"Nation code (e.g. FIN)"
@Param			gender		query		string		false	"Gender (M/W)"
@Param			catcode		query		string		false	"Category code (e.g. WC)"
@Success		200			{object}	swagger.FISRacesSearchResponse
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/races/search [get]

type RaceSearchItem

type RaceSearchItem struct {
	Sectorcode     string  `json:"sectorcode" example:"CC"`
	Gender         *string `json:"gender,omitempty" example:"M"`
	Raceid         int32   `json:"raceid" example:"123456"`
	Racedate       *string `json:"racedate,omitempty" example:"2025-02-15"` // YYYY-MM-DD
	Catcode        *string `json:"catcode,omitempty" example:"WC"`
	Description    *string `json:"description,omitempty" example:"World Cup Sprint"`
	Place          *string `json:"place,omitempty" example:"Lahti"`
	Nationcode     *string `json:"nationcode,omitempty" example:"FIN"`
	Disciplinecode *string `json:"disciplinecode,omitempty" example:"DSPR"`
}

type RacesCCQuery

type RacesCCQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type RacesJPQuery

type RacesJPQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type RacesNKQuery

type RacesNKQuery struct {
	SeasonCode     []string `form:"seasoncode"`
	DisciplineCode []string `form:"disciplinecode"`
	CatCode        []string `form:"catcode"`
}

type ResultCCHandler

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

func NewResultCCHandler

func NewResultCCHandler(store fis.Resultcc, competitors fis.Competitors, cache *cache.Storage) *ResultCCHandler

func (*ResultCCHandler) DeleteResultCC

func (h *ResultCCHandler) DeleteResultCC(w http.ResponseWriter, r *http.Request)

DeleteResultCC godoc

@Summary		Delete Cross-Country result
@Description	Deletes a result by RecID
@Tags			FIS - Result Management – Cross-Country
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Result RecID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultcc [delete]

func (*ResultCCHandler) GetAthleteResultsCC

func (h *ResultCCHandler) GetAthleteResultsCC(w http.ResponseWriter, r *http.Request)

GetAthleteResultsCC godoc

@Summary	Get Cross-Country results for an athlete
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		fiscode			query		int32		true	"FIS Code"
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISAthleteResultsCCResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	404				{object}	swagger.NotFoundResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultathletecc [get]

func (*ResultCCHandler) GetLastRowResultCC

func (h *ResultCCHandler) GetLastRowResultCC(w http.ResponseWriter, r *http.Request)

GetLastRowResultCC godoc

@Summary		Get last Cross-Country result record
@Description	Returns the last row in a_resultcc (by RecID DESC)
@Tags			FIS - Result Management – Cross-Country
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastResultCCResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/resultcc [get]

func (*ResultCCHandler) GetRaceResultsCC

func (h *ResultCCHandler) GetRaceResultsCC(w http.ResponseWriter, r *http.Request)

GetRaceResultsCC godoc

@Summary	Get results for a Cross-Country race
@Tags		FIS - Race Results
@Accept		json
@Produce	json
@Param		raceid	query		int32	true	"Race ID"
@Success	200		{object}	swagger.FISRaceResultsCCResponse
@Failure	400		{object}	swagger.ValidationErrorResponse
@Failure	401		{object}	swagger.UnauthorizedResponse
@Failure	403		{object}	swagger.ForbiddenResponse
@Failure	500		{object}	swagger.InternalServerErrorResponse
@Failure	503		{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultcc [get]

func (*ResultCCHandler) InsertResultCC

func (h *ResultCCHandler) InsertResultCC(w http.ResponseWriter, r *http.Request)

InsertResultCC godoc

@Summary		Add new Cross-Country result
@Description	Inserts a new a_resultcc row
@Tags			FIS - Result Management – Cross-Country
@Accept			json
@Produce		json
@Param			resultcc	body	swagger.FISInsertResultCCExample	true	"Result payload"
@Success		201			"Created"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		409			{object}	swagger.ConflictResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultcc [post]

func (*ResultCCHandler) UpdateResultCC

func (h *ResultCCHandler) UpdateResultCC(w http.ResponseWriter, r *http.Request)

UpdateResultCC godoc

@Summary		Update Cross-Country result by RecID
@Description	Updates an existing a_resultcc row
@Tags			FIS - Result Management – Cross-Country
@Accept			json
@Produce		json
@Param			resultcc	body	swagger.FISUpdateResultCCExample	true	"Result payload"
@Success		200			"Updated"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		404			{object}	swagger.NotFoundResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultcc [put]

type ResultJPHandler

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

func NewResultJPHandler

func NewResultJPHandler(store fis.Resultjp, competitors fis.Competitors, cache *cache.Storage) *ResultJPHandler

func (*ResultJPHandler) DeleteResultJP

func (h *ResultJPHandler) DeleteResultJP(w http.ResponseWriter, r *http.Request)

DeleteResultJP godoc

@Summary		Delete Ski Jumping result
@Description	Deletes a result by RecID
@Tags			FIS - Result Management – Ski Jumping
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Result RecID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultjp [delete]

func (*ResultJPHandler) GetAthleteResultsJP

func (h *ResultJPHandler) GetAthleteResultsJP(w http.ResponseWriter, r *http.Request)

GetAthleteResultsJP godoc

@Summary	Get Ski Jumping results for an athlete
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		fiscode			query		int32		true	"FIS Code"
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISAthleteResultsJPResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	404				{object}	swagger.NotFoundResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultathletejp [get]

func (*ResultJPHandler) GetLastRowResultJP

func (h *ResultJPHandler) GetLastRowResultJP(w http.ResponseWriter, r *http.Request)

GetLastRowResultJP godoc

@Summary		Get last Ski Jumping result record
@Description	Returns the last row in a_resultjp (by RecID DESC)
@Tags			FIS - Result Management – Ski Jumping
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastResultJPResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/resultjp [get]

func (*ResultJPHandler) GetRaceResultsJP

func (h *ResultJPHandler) GetRaceResultsJP(w http.ResponseWriter, r *http.Request)

GetRaceResultsJP godoc

@Summary	Get results for a Ski Jumping race
@Tags		FIS - Race Results
@Accept		json
@Produce	json
@Param		raceid	query		int32	true	"Race ID"
@Success	200		{object}	swagger.FISRaceResultsJPResponse
@Failure	400		{object}	swagger.ValidationErrorResponse
@Failure	401		{object}	swagger.UnauthorizedResponse
@Failure	403		{object}	swagger.ForbiddenResponse
@Failure	500		{object}	swagger.InternalServerErrorResponse
@Failure	503		{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultjp [get]

func (*ResultJPHandler) InsertResultJP

func (h *ResultJPHandler) InsertResultJP(w http.ResponseWriter, r *http.Request)

InsertResultJP godoc

@Summary		Add new Ski Jumping result
@Description	Inserts a new a_resultjp row
@Tags			FIS - Result Management – Ski Jumping
@Accept			json
@Produce		json
@Param			resultjp	body	swagger.FISInsertResultJPExample	true	"Result payload"
@Success		201			"Created"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		409			{object}	swagger.ConflictResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultjp [post]

func (*ResultJPHandler) UpdateResultJP

func (h *ResultJPHandler) UpdateResultJP(w http.ResponseWriter, r *http.Request)

UpdateResultJP godoc

@Summary		Update Ski Jumping result by RecID
@Description	Updates an existing a_resultjp row
@Tags			FIS - Result Management – Ski Jumping
@Accept			json
@Produce		json
@Param			resultjp	body	swagger.FISUpdateResultJPExample	true	"Result payload"
@Success		200			"Updated"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		404			{object}	swagger.NotFoundResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultjp [put]

type ResultKAMKHandler

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

Handles competitor/result-related KAMK endpoints.

func NewResultKAMKHandler

func NewResultKAMKHandler(
	resultCC fis.Resultcc,
	resultJP fis.Resultjp,
	resultNK fis.Resultnk,
	cache *cache.Storage,
) *ResultKAMKHandler

func (*ResultKAMKHandler) GetCompetitorLatestResults

func (h *ResultKAMKHandler) GetCompetitorLatestResults(w http.ResponseWriter, r *http.Request)

GetCompetitorLatestResults godoc

@Summary		Get competitor latest race results
@Description	Gets an athlete's latest race results filtered by sector and optional season and catcodes. Results are ordered by Racedate DESC.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			competitorid	query		int32		true	"Competitor ID"
@Param			sector			query		string		true	"Sector code (CC,JP,NK)"
@Param			seasoncode		query		int32		false	"Season code filter"
@Param			catcode			query		[]string	false	"Category code(s) – repeat or comma-separated (e.g. catcode=WC&catcode=COC or catcode=WC,COC)"
@Param			limit			query		int32		false	"Maximum number of results to return (default 50)"
@Success		200				{object}	swagger.FISLatestResultsResponse
@Failure		400				{object}	swagger.ValidationErrorResponse
@Failure		401				{object}	swagger.UnauthorizedResponse
@Failure		403				{object}	swagger.ForbiddenResponse
@Failure		500				{object}	swagger.InternalServerErrorResponse
@Failure		503				{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor/latest-results [get]

func (*ResultKAMKHandler) GetCompetitorSeasonsCatcodes

func (h *ResultKAMKHandler) GetCompetitorSeasonsCatcodes(w http.ResponseWriter, r *http.Request)

GetCompetitorSeasonsCatcodes godoc

@Summary		Get competitor seasons and categories
@Description	Gets distinct (Seasoncode, Catcode) combinations for the races a competitor has actually competed in, for a given sector (CC, JP, NK). Uses both race and result tables.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			competitorid	query		int32	true	"Competitor ID"
@Param			sector			query		string	true	"Sector code (CC,JP,NK)"
@Success		200				{object}	swagger.FISCompetitorSeasonsCatcodesResponse
@Failure		400				{object}	swagger.ValidationErrorResponse
@Failure		401				{object}	swagger.UnauthorizedResponse
@Failure		403				{object}	swagger.ForbiddenResponse
@Failure		500				{object}	swagger.InternalServerErrorResponse
@Failure		503				{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/competitor/seasons-catcodes [get]

type ResultNKHandler

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

func NewResultNKHandler

func NewResultNKHandler(store fis.Resultnk, competitors fis.Competitors, cache *cache.Storage) *ResultNKHandler

func (*ResultNKHandler) DeleteResultNK

func (h *ResultNKHandler) DeleteResultNK(w http.ResponseWriter, r *http.Request)

DeleteResultNK godoc

@Summary		Delete Nordic Combined result
@Description	Deletes a result by RecID
@Tags			FIS - Result Management – Nordic Combined
@Accept			json
@Produce		json
@Param			id	query	int32	true	"Result RecID"
@Success		200	"Deleted"
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultnk [delete]

func (*ResultNKHandler) GetAthleteResultsNK

func (h *ResultNKHandler) GetAthleteResultsNK(w http.ResponseWriter, r *http.Request)

GetAthleteResultsNK godoc

@Summary	Get Nordic Combined results for an athlete
@Tags		FIS - Athlete
@Accept		json
@Produce	json
@Param		fiscode			query		int32		true	"FIS Code"
@Param		seasoncode		query		[]int32		false	"Season code (repeat or comma-separated)"
@Param		disciplinecode	query		[]string	false	"Discipline code (repeat or comma-separated)"
@Param		catcode			query		[]string	false	"Category code (repeat or comma-separated)"
@Success	200				{object}	swagger.FISAthleteResultsNKResponse
@Failure	400				{object}	swagger.ValidationErrorResponse
@Failure	401				{object}	swagger.UnauthorizedResponse
@Failure	403				{object}	swagger.ForbiddenResponse
@Failure	404				{object}	swagger.NotFoundResponse
@Failure	500				{object}	swagger.InternalServerErrorResponse
@Failure	503				{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultathletenk [get]

func (*ResultNKHandler) GetLastRowResultNK

func (h *ResultNKHandler) GetLastRowResultNK(w http.ResponseWriter, r *http.Request)

GetLastRowResultNK godoc

@Summary		Get last Nordic Combined result record
@Description	Returns the last row in a_resultnk (by RecID DESC)
@Tags			FIS - Result Management – Nordic Combined
@Accept			json
@Produce		json
@Success		200	{object}	swagger.FISLastResultNKResponse
@Failure		400	{object}	swagger.ValidationErrorResponse
@Failure		401	{object}	swagger.UnauthorizedResponse
@Failure		403	{object}	swagger.ForbiddenResponse
@Failure		404	{object}	swagger.NotFoundResponse
@Failure		500	{object}	swagger.InternalServerErrorResponse
@Failure		503	{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/lastrow/resultnk [get]

func (*ResultNKHandler) GetRaceResultsNK

func (h *ResultNKHandler) GetRaceResultsNK(w http.ResponseWriter, r *http.Request)

GetRaceResultsNK godoc

@Summary	Get results for a Nordic Combined race
@Tags		FIS - Race Results
@Accept		json
@Produce	json
@Param		raceid	query		int32	true	"Race ID"
@Success	200		{object}	swagger.FISRaceResultsNKResponse
@Failure	400		{object}	swagger.ValidationErrorResponse
@Failure	401		{object}	swagger.UnauthorizedResponse
@Failure	403		{object}	swagger.ForbiddenResponse
@Failure	500		{object}	swagger.InternalServerErrorResponse
@Failure	503		{object}	swagger.ServiceUnavailableResponse
@Security	BearerAuth
@Router		/fis/resultnk [get]

func (*ResultNKHandler) InsertResultNK

func (h *ResultNKHandler) InsertResultNK(w http.ResponseWriter, r *http.Request)

InsertResultNK godoc

@Summary		Add new Nordic Combined result
@Description	Inserts a new a_resultnk row
@Tags			FIS - Result Management – Nordic Combined
@Accept			json
@Produce		json
@Param			resultnk	body	swagger.FISInsertResultNKExample	true	"Result payload"
@Success		201			"Created"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		409			{object}	swagger.ConflictResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultnk [post]

func (*ResultNKHandler) UpdateResultNK

func (h *ResultNKHandler) UpdateResultNK(w http.ResponseWriter, r *http.Request)

UpdateResultNK godoc

@Summary		Update Nordic Combined result by RecID
@Description	Updates an existing a_resultnk row
@Tags			FIS - Result Management – Nordic Combined
@Accept			json
@Produce		json
@Param			resultnk	body	swagger.FISUpdateResultNKExample	true	"Result payload"
@Success		200			"Updated"
@Failure		400			{object}	swagger.ValidationErrorResponse
@Failure		401			{object}	swagger.UnauthorizedResponse
@Failure		403			{object}	swagger.ForbiddenResponse
@Failure		404			{object}	swagger.NotFoundResponse
@Failure		500			{object}	swagger.InternalServerErrorResponse
@Failure		503			{object}	swagger.ServiceUnavailableResponse
@Security		BearerAuth
@Router			/fis/resultnk [put]

type SectorParam

type SectorParam struct {
	Sector string `form:"sectorcode" validate:"required,oneof=JP NK CC"`
}

Query params

type SporttiIDParam

type SporttiIDParam struct {
	SporttiID string `form:"sporttiid" validate:"required,numeric"`
}

type UpdateAthleteInput

type UpdateAthleteInput struct {
	Fiscode   int32   `json:"fiscode" validate:"required"`
	Sporttiid *int32  `json:"sporttiid"`
	Firstname *string `json:"firstname"`
	Lastname  *string `json:"lastname"`
}

type UpdateCompetitorInput

type UpdateCompetitorInput struct {
	Competitorid       int32   `json:"competitorid" validate:"required"`
	Personid           *int32  `json:"personid"`
	Ipcid              *int32  `json:"ipcid"`
	Type               *string `json:"type"`
	Sectorcode         *string `json:"sectorcode"`
	Fiscode            *int32  `json:"fiscode"`
	Lastname           *string `json:"lastname"`
	Firstname          *string `json:"firstname"`
	Gender             *string `json:"gender"`
	Birthdate          *string `json:"birthdate"`
	Nationcode         *string `json:"nationcode"`
	Nationalcode       *string `json:"nationalcode"`
	Skiclub            *string `json:"skiclub"`
	Association        *string `json:"association"`
	Status             *string `json:"status"`
	StatusOld          *string `json:"status_old"`
	StatusBy           *string `json:"status_by"`
	StatusDate         *string `json:"status_date"`
	Statusnextlist     *string `json:"statusnextlist"`
	Alternatenamecheck *string `json:"alternatenamecheck"`
	Fee                *string `json:"fee"`
	Dateofcreation     *string `json:"dateofcreation"`
	Createdby          *string `json:"createdby"`
	Injury             *int32  `json:"injury"`
	Version            *int32  `json:"version"`
	Compidmssql        *int32  `json:"compidmssql"`
	Carving            *int32  `json:"carving"`
	Photo              *int32  `json:"photo"`
	Notallowed         *int32  `json:"notallowed"`
	Natteam            *string `json:"natteam"`
	Tragroup           *string `json:"tragroup"`
	Published          *int32  `json:"published"`
	Doped              *string `json:"doped"`
	Team               *int32  `json:"team"`
	PhotoBig           *int32  `json:"photo_big"`
	Data               *string `json:"data"`
	Lastupdateby       *string `json:"lastupdateby"`
	Disciplines        *string `json:"disciplines"`
	Lastupdate         *string `json:"lastupdate"`
	Deletedat          *string `json:"deletedat"`
	Categorycode       *string `json:"categorycode"`
	Classname          *string `json:"classname"`
	Classcode          *string `json:"classcode"`
}

type UpdateRaceCCInput

type UpdateRaceCCInput = InsertRaceCCInput

type UpdateRaceJPInput

type UpdateRaceJPInput = InsertRaceJPInput

type UpdateRaceNKInput

type UpdateRaceNKInput = InsertRaceNKInput

type UpdateResultCCInput

type UpdateResultCCInput = InsertResultCCInput

type UpdateResultJPInput

type UpdateResultJPInput = InsertResultJPInput

type UpdateResultNKInput

type UpdateResultNKInput = InsertResultNKInput

Jump to

Keyboard shortcuts

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