Help us shape the future of Go! Take the 2026 Go Developer Survey

fisapi

package
v1.3.5 Latest Latest
Warning

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

Go to latest
Published: May 18, 2026 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) GetSectorcodeByFiscode added in v1.3.1

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

GetSectorcodeByFiscode godoc

@Summary		Get sector code by fiscode
@Description	Returns the sectorcode for a competitor based on fiscode.
@Tags			FIS - KAMK
@Accept			json
@Produce		json
@Param			fiscode	query		int32	true	"FIS code"
@Success		200		{object}	swagger.FISSectorcodeByFiscodeResponse
@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/sectorcode [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"`
	Nationcode     *string `json:"nationcode"`
}

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"`
	Nationcode     *string `json:"nationcode"`

	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"`
	Nationcode     *string `json:"nationcode"`

	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 FISCompetitorSearchItem added in v1.3.5

type FISCompetitorSearchItem struct {
	Firstname  *string `json:"firstname"`
	Lastname   *string `json:"lastname"`
	Fiscode    *int32  `json:"fiscode"`
	Gender     *string `json:"gender"`
	Nationcode *string `json:"nationcode"`
	Sectorcode *string `json:"sectorcode"`
	Status     *string `json:"status"`
	Skiclub    *string `json:"skiclub"`
	Birthdate  *string `json:"birthdate"`
}

func FISCompetitorSearchFromSqlc added in v1.3.5

func FISCompetitorSearchFromSqlc(row fissqlc.SearchCompetitorsRow) FISCompetitorSearchItem

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			fiscode		query		int32		true	"FIS Code"
@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			fiscode	query		int32	true	"FIS Code"
@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