/*
Copyright (C) 2025 filifa

This file is part of mlbstats.

mlbstats is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

mlbstats is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
mlbstats. If not, see <https://www.gnu.org/licenses/>.
*/

/*
 * Stats API Documentation
 *
 * Official API for Major League Baseball.
 *
 * API version: 2.0.0
 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
 */
package models

import (
	"time"
)

type BaseballLinescore struct {
	RequestingUserRole     *Role                       `json:"requestingUserRole,omitempty"`
	CreatedAt              time.Time                   `json:"createdAt,omitempty"`
	AwayScore              int32                       `json:"awayScore,omitempty"`
	HomeScore              int32                       `json:"homeScore,omitempty"`
	GameStatus             *IGameStatus                `json:"gameStatus,omitempty"`
	HomeTeam               *BaseballTeam               `json:"homeTeam,omitempty"`
	AwayTeam               *BaseballTeam               `json:"awayTeam,omitempty"`
	GamePk                 int32                       `json:"gamePk,omitempty"`
	Note                   string                      `json:"note,omitempty"`
	ScheduledInnings       int32                       `json:"scheduledInnings,omitempty"`
	CurrentInning          int32                       `json:"currentInning,omitempty"`
	CurrentInningOrdinal   string                      `json:"currentInningOrdinal,omitempty"`
	InningState            string                      `json:"inningState,omitempty"`
	InningHalf             string                      `json:"inningHalf,omitempty"`
	IsTopInning            bool                        `json:"isTopInning,omitempty"`
	Innings                []BaseballInning            `json:"innings,omitempty"`
	RunsAway               int32                       `json:"runsAway,omitempty"`
	RunsHome               int32                       `json:"runsHome,omitempty"`
	AwayHits               int32                       `json:"awayHits,omitempty"`
	HomeHits               int32                       `json:"homeHits,omitempty"`
	AwayErrors             int32                       `json:"awayErrors,omitempty"`
	HomeErrors             int32                       `json:"homeErrors,omitempty"`
	AwayLeftOnBase         int32                       `json:"awayLeftOnBase,omitempty"`
	HomeLeftOnBase         int32                       `json:"homeLeftOnBase,omitempty"`
	AwayIsWinner           bool                        `json:"awayIsWinner,omitempty"`
	HomeIsWinner           bool                        `json:"homeIsWinner,omitempty"`
	Balls                  int32                       `json:"balls,omitempty"`
	Strikes                int32                       `json:"strikes,omitempty"`
	Outs                   int32                       `json:"outs,omitempty"`
	BatTeam                *BaseballTeam               `json:"batTeam,omitempty"`
	BatTeamsLastPitcher    *BaseballPerson             `json:"batTeamsLastPitcher,omitempty"`
	BatterPosition         *BaseballPosition           `json:"batterPosition,omitempty"`
	Batter                 *BaseballPerson             `json:"batter,omitempty"`
	OnDeck                 *BaseballPerson             `json:"onDeck,omitempty"`
	InHole                 *BaseballPerson             `json:"inHole,omitempty"`
	BattingOrder           int32                       `json:"battingOrder,omitempty"`
	OnFirst                *BaseballPerson             `json:"onFirst,omitempty"`
	OnSecond               *BaseballPerson             `json:"onSecond,omitempty"`
	OnThird                *BaseballPerson             `json:"onThird,omitempty"`
	PostOnFirst            *BaseballPerson             `json:"postOnFirst,omitempty"`
	PostOnSecond           *BaseballPerson             `json:"postOnSecond,omitempty"`
	PostOnThird            *BaseballPerson             `json:"postOnThird,omitempty"`
	FieldTeam              *BaseballTeam               `json:"fieldTeam,omitempty"`
	Pitcher                *BaseballPerson             `json:"pitcher,omitempty"`
	Catcher                *BaseballPerson             `json:"catcher,omitempty"`
	FirstBase              *BaseballPerson             `json:"firstBase,omitempty"`
	SecondBase             *BaseballPerson             `json:"secondBase,omitempty"`
	ThirdBase              *BaseballPerson             `json:"thirdBase,omitempty"`
	Shortstop              *BaseballPerson             `json:"shortstop,omitempty"`
	LeftField              *BaseballPerson             `json:"leftField,omitempty"`
	CenterField            *BaseballPerson             `json:"centerField,omitempty"`
	RightField             *BaseballPerson             `json:"rightField,omitempty"`
	FieldTeamsDueUpBatter  *BaseballPerson             `json:"fieldTeamsDueUpBatter,omitempty"`
	FieldTeamsDueUpOnDeck  *BaseballPerson             `json:"fieldTeamsDueUpOnDeck,omitempty"`
	FieldTeamsDueUpInHole  *BaseballPerson             `json:"fieldTeamsDueUpInHole,omitempty"`
	FieldTeamsBattingOrder int32                       `json:"fieldTeamsBattingOrder,omitempty"`
	PlayersNotInField      map[string]BaseballPosition `json:"playersNotInField,omitempty"`
	Tie                    bool                        `json:"tie,omitempty"`
	TopInning              bool                        `json:"topInning,omitempty"`
	HydratedStats          map[string]interface{}      `json:"hydratedStats,omitempty"`
	UserPrivileges         []Privilege                 `json:"userPrivileges,omitempty"`
}
