/*
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 BaseballScheduleItem struct {
	CalendarEventId         string                 `json:"calendarEventId,omitempty"`
	GamePk                  int32                  `json:"gamePk,omitempty"`
	GameType                *GameTypeEnum          `json:"gameType,omitempty"`
	GameDate                time.Time              `json:"gameDate,omitempty"`
	OfficialDate            string                 `json:"officialDate,omitempty"`
	CalendarDate            string                 `json:"calendarDate,omitempty"`
	UnmodifiedCalendarDate  string                 `json:"unmodifiedCalendarDate,omitempty"`
	ResumeGameDate          string                 `json:"resumeGameDate,omitempty"`
	ResumeDate              time.Time              `json:"resumeDate,omitempty"`
	ResumedFromDate         string                 `json:"resumedFromDate,omitempty"`
	ResumedFrom             time.Time              `json:"resumedFrom,omitempty"`
	RescheduleGameDate      string                 `json:"rescheduleGameDate,omitempty"`
	RescheduleDate          time.Time              `json:"rescheduleDate,omitempty"`
	RescheduledFromDate     string                 `json:"rescheduledFromDate,omitempty"`
	RescheduledFrom         time.Time              `json:"rescheduledFrom,omitempty"`
	Season                  string                 `json:"season,omitempty"`
	StatusInd               string                 `json:"statusInd,omitempty"`
	GameNumber              int32                  `json:"gameNumber,omitempty"`
	GameStatus              *IGameStatus           `json:"gameStatus,omitempty"`
	AwayTeam                *BaseballTeam          `json:"awayTeam,omitempty"`
	HomeTeam                *BaseballTeam          `json:"homeTeam,omitempty"`
	Venue                   *Venue                 `json:"venue,omitempty"`
	ResumeVenue             *Venue                 `json:"resumeVenue,omitempty"`
	ResumedFromVenue        *Venue                 `json:"resumedFromVenue,omitempty"`
	Cms                     *GameCms               `json:"cms,omitempty"`
	AwayScore               int32                  `json:"awayScore,omitempty"`
	HomeScore               int32                  `json:"homeScore,omitempty"`
	AwayWins                int32                  `json:"awayWins,omitempty"`
	AwayLosses              int32                  `json:"awayLosses,omitempty"`
	AwayOvertimeLosses      int32                  `json:"awayOvertimeLosses,omitempty"`
	AwayTies                int32                  `json:"awayTies,omitempty"`
	AwayIsWinner            bool                   `json:"awayIsWinner,omitempty"`
	HomeWins                int32                  `json:"homeWins,omitempty"`
	HomeLosses              int32                  `json:"homeLosses,omitempty"`
	PostseasonSeries        *PostseasonSeries      `json:"postseasonSeries,omitempty"`
	HomeOvertimeLosses      int32                  `json:"homeOvertimeLosses,omitempty"`
	HomeTies                int32                  `json:"homeTies,omitempty"`
	HomeIsWinner            bool                   `json:"homeIsWinner,omitempty"`
	IsTie                   bool                   `json:"isTie,omitempty"`
	Linescore               *BaseballLinescore     `json:"linescore,omitempty"`
	Decisions               *BaseballDecision      `json:"decisions,omitempty"`
	ScoringPlays            []BaseballPlay         `json:"scoringPlays,omitempty"`
	Broadcasts              []GameDateBroadcast    `json:"broadcasts,omitempty"`
	RadioBroadcasts         []GameDateBroadcast    `json:"radioBroadcasts,omitempty"`
	EndDateTime             time.Time              `json:"endDateTime,omitempty"`
	IsDefaultGame           bool                   `json:"isDefaultGame,omitempty"`
	Promotions              []Promotion            `json:"promotions,omitempty"`
	AtBatPromotions         []Promotion            `json:"atBatPromotions,omitempty"`
	Sponsorships            []Promotion            `json:"sponsorships,omitempty"`
	Officials               []Official             `json:"officials,omitempty"`
	PregameOfficials        []Official             `json:"pregameOfficials,omitempty"`
	Weather                 *Weather               `json:"weather,omitempty"`
	GameInfo                *GameTo                `json:"gameInfo,omitempty"`
	PublicFacing            *PublicFacingEnum      `json:"publicFacing,omitempty"`
	Story                   *GameStory             `json:"story,omitempty"`
	TrackingVersion         *TrackingVersion       `json:"trackingVersion,omitempty"`
	TrackingSystemOwner     *TrackingSystemOwner   `json:"trackingSystemOwner,omitempty"`
	CoachingVideo           []MediaSourceType      `json:"coachingVideo,omitempty"`
	AtBatTicketLinks        []BaseballTicket       `json:"atBatTicketLinks,omitempty"`
	SeriesStatus            *SeriesStatus          `json:"seriesStatus,omitempty"`
	SortNumber              int32                  `json:"sortNumber,omitempty"`
	IsFeaturedGame          bool                   `json:"isFeaturedGame,omitempty"`
	XrefIds                 []XrefId               `json:"xrefIds,omitempty"`
	GameId                  string                 `json:"gameId,omitempty"`
	Description             string                 `json:"description,omitempty"`
	SeriesDescription       string                 `json:"seriesDescription,omitempty"`
	DoubleHeader            string                 `json:"doubleHeader,omitempty"`
	GamedayType             string                 `json:"gamedayType,omitempty"`
	Tiebreaker              string                 `json:"tiebreaker,omitempty"`
	ScheduledInnings        int32                  `json:"scheduledInnings,omitempty"`
	InningBreakLength       int32                  `json:"inningBreakLength,omitempty"`
	GamesInSeries           int32                  `json:"gamesInSeries,omitempty"`
	SeriesGameNumber        int32                  `json:"seriesGameNumber,omitempty"`
	EditorialGameType       string                 `json:"editorialGameType,omitempty"`
	EditorialSeason         string                 `json:"editorialSeason,omitempty"`
	LocalTime               string                 `json:"localTime,omitempty"`
	LocalAmPm               string                 `json:"localAmPm,omitempty"`
	LocalDate               string                 `json:"localDate,omitempty"`
	AwayGamesBack           string                 `json:"awayGamesBack,omitempty"`
	AwayWildCardGamesBack   string                 `json:"awayWildCardGamesBack,omitempty"`
	AwaySplitSquad          bool                   `json:"awaySplitSquad,omitempty"`
	AwaySeriesNumber        int32                  `json:"awaySeriesNumber,omitempty"`
	RecordSource            string                 `json:"recordSource,omitempty"`
	IfNecessary             string                 `json:"ifNecessary,omitempty"`
	IfNecessaryDescription  string                 `json:"ifNecessaryDescription,omitempty"`
	HomeGamesBack           string                 `json:"homeGamesBack,omitempty"`
	HomeWildCardGamesBack   string                 `json:"homeWildCardGamesBack,omitempty"`
	HomeSplitSquad          bool                   `json:"homeSplitSquad,omitempty"`
	HomeSeriesNumber        int32                  `json:"homeSeriesNumber,omitempty"`
	IsNightGame             bool                   `json:"isNightGame,omitempty"`
	AwayProbable            *BaseballPerson        `json:"awayProbable,omitempty"`
	HomeProbable            *BaseballPerson        `json:"homeProbable,omitempty"`
	Challenge               *BaseballChallenge     `json:"challenge,omitempty"`
	AbsChallenge            *BaseballAbsChallenge  `json:"absChallenge,omitempty"`
	Flags                   *BaseballGameFlag      `json:"flags,omitempty"`
	Alerts                  []BaseballGameAlert    `json:"alerts,omitempty"`
	LiveLookin              *LiveLookin            `json:"liveLookin,omitempty"`
	SortTime                string                 `json:"sortTime,omitempty"`
	SortTeam                string                 `json:"sortTeam,omitempty"`
	SortGameId              string                 `json:"sortGameId,omitempty"`
	SortGameNo              string                 `json:"sortGameNo,omitempty"`
	PreviousPlay            *BaseballPlay          `json:"previousPlay,omitempty"`
	HomeRuns                []BaseballPlay         `json:"homeRuns,omitempty"`
	Tickets                 []BaseballTicket       `json:"tickets,omitempty"`
	AtBatTickets            []BaseballTicket       `json:"atBatTickets,omitempty"`
	SportId                 int32                  `json:"sportId,omitempty"`
	Day                     string                 `json:"day,omitempty"`
	HomeLeagueId            int32                  `json:"homeLeagueId,omitempty"`
	AwayLeagueId            int32                  `json:"awayLeagueId,omitempty"`
	BaseballLineup          *BaseballLineup        `json:"baseballLineup,omitempty"`
	DoubleHeaderGameOneTime time.Time              `json:"doubleHeaderGameOneTime,omitempty"`
	ReverseHomeAwayStatus   bool                   `json:"reverseHomeAwayStatus,omitempty"`
	IsDoNotSortAsDH         bool                   `json:"isDoNotSortAsDH,omitempty"`
	StatusFlags             *StatusFlags           `json:"statusFlags,omitempty"`
	GameGuid                string                 `json:"gameGuid,omitempty"`
	VendorWeatherForecast   *VendorWeatherForecast `json:"vendorWeatherForecast,omitempty"`
	CacheKey                string                 `json:"cacheKey,omitempty"`
	LinescoreOverrides      *BaseballLinescore     `json:"linescoreOverrides,omitempty"`
	PostseasonSeriesId      string                 `json:"postseasonSeriesId,omitempty"`
	WinningTeam             *BaseballTeam          `json:"winningTeam,omitempty"`
	Tie                     bool                   `json:"tie,omitempty"`
	Hydratable              bool                   `json:"hydratable,omitempty"`
	NightGame               bool                   `json:"nightGame,omitempty"`
	LosingTeam              *BaseballTeam          `json:"losingTeam,omitempty"`
	SortDate                time.Time              `json:"sortDate,omitempty"`
	DoubleHeaderTeamPairKey string                 `json:"doubleHeaderTeamPairKey,omitempty"`
}
