/*
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 BaseballScheduleItemRestObject struct {
	Copyright              string                                        `json:"copyright,omitempty"`
	GamePk                 int32                                         `json:"gamePk,omitempty"`
	GameGuid               string                                        `json:"gameGuid,omitempty"`
	Link                   string                                        `json:"link,omitempty"`
	GameType               string                                        `json:"gameType,omitempty"`
	Season                 string                                        `json:"season,omitempty"`
	GameDate               time.Time                                     `json:"gameDate,omitempty"`
	OfficialDate           string                                        `json:"officialDate,omitempty"`
	ResumeDate             time.Time                                     `json:"resumeDate,omitempty"`
	ResumeGameDate         string                                        `json:"resumeGameDate,omitempty"`
	ResumedFrom            time.Time                                     `json:"resumedFrom,omitempty"`
	ResumedFromDate        string                                        `json:"resumedFromDate,omitempty"`
	RescheduleDate         time.Time                                     `json:"rescheduleDate,omitempty"`
	RescheduleGameDate     string                                        `json:"rescheduleGameDate,omitempty"`
	RescheduledFrom        time.Time                                     `json:"rescheduledFrom,omitempty"`
	RescheduledFromDate    string                                        `json:"rescheduledFromDate,omitempty"`
	EndDateTime            time.Time                                     `json:"endDateTime,omitempty"`
	Status                 *GameStatusRestObject                         `json:"status,omitempty"`
	Teams                  map[string]BaseballScheduleItemTeamRestObject `json:"teams,omitempty"`
	Linescore              *BaseballLinescoreRestObject                  `json:"linescore,omitempty"`
	Decisions              *BaseballDecisionRestObject                   `json:"decisions,omitempty"`
	ScoringPlays           []BaseballPlayRestObject                      `json:"scoringPlays,omitempty"`
	Venue                  *VenueRestObject                              `json:"venue,omitempty"`
	Tickets                []BaseballTicketRestObject                    `json:"tickets,omitempty"`
	AtBatTickets           []BaseballTicketRestObject                    `json:"atBatTickets,omitempty"`
	Promotions             []PromotionRestObject                         `json:"promotions,omitempty"`
	AtBatPromotions        []PromotionRestObject                         `json:"atBatPromotions,omitempty"`
	Sponsorships           []PromotionRestObject                         `json:"sponsorships,omitempty"`
	Broadcasts             []GameDateBroadcastRestObject                 `json:"broadcasts,omitempty"`
	RadioBroadcasts        []GameDateBroadcastRestObject                 `json:"radioBroadcasts,omitempty"`
	Content                *GameContentRestObject                        `json:"content,omitempty"`
	SeriesStatus           *SeriesStatusRestObject                       `json:"seriesStatus,omitempty"`
	IsDefaultGame          bool                                          `json:"isDefaultGame,omitempty"`
	SortNumber             int32                                         `json:"sortNumber,omitempty"`
	IsTie                  bool                                          `json:"isTie,omitempty"`
	IsFeaturedGame         bool                                          `json:"isFeaturedGame,omitempty"`
	Officials              []OfficialRestObject                          `json:"officials,omitempty"`
	PregameOfficials       []OfficialRestObject                          `json:"pregameOfficials,omitempty"`
	Weather                *WeatherRestObject                            `json:"weather,omitempty"`
	XrefIds                []XrefIdRestObject                            `json:"xrefIds,omitempty"`
	GameInfo               *GameInfoRestObject                           `json:"gameInfo,omitempty"`
	GameNumber             int32                                         `json:"gameNumber,omitempty"`
	PublicFacing           bool                                          `json:"publicFacing,omitempty"`
	Story                  *GameStoryRestObject                          `json:"story,omitempty"`
	WeatherForecast        *VendorWeatherForecastRestObject              `json:"weatherForecast,omitempty"`
	RuleSettings           []RuleSettingsRestObject                      `json:"ruleSettings,omitempty"`
	TrackingVersion        *TrackingVersionRestObject                    `json:"trackingVersion,omitempty"`
	CoachingVideo          []string                                      `json:"coachingVideo,omitempty"`
	DoubleHeader           string                                        `json:"doubleHeader,omitempty"`
	GamedayType            string                                        `json:"gamedayType,omitempty"`
	Tiebreaker             string                                        `json:"tiebreaker,omitempty"`
	CalendarEventID        string                                        `json:"calendarEventID,omitempty"`
	SeasonDisplay          string                                        `json:"seasonDisplay,omitempty"`
	DayNight               string                                        `json:"dayNight,omitempty"`
	Description            string                                        `json:"description,omitempty"`
	ScheduledInnings       int32                                         `json:"scheduledInnings,omitempty"`
	ReverseHomeAwayStatus  bool                                          `json:"reverseHomeAwayStatus,omitempty"`
	InningBreakLength      int32                                         `json:"inningBreakLength,omitempty"`
	GamesInSeries          int32                                         `json:"gamesInSeries,omitempty"`
	SeriesGameNumber       int32                                         `json:"seriesGameNumber,omitempty"`
	SeriesDescription      string                                        `json:"seriesDescription,omitempty"`
	Review                 *BaseballReviewRestObject                     `json:"review,omitempty"`
	AbsChallenge           *BaseballAbsChallengeRestObject               `json:"absChallenge,omitempty"`
	Flags                  *BaseballGameFlagRestObject                   `json:"flags,omitempty"`
	StatusFlags            *StatusFlagsRestObject                        `json:"statusFlags,omitempty"`
	Alerts                 []BaseballGameAlertRestObject                 `json:"alerts,omitempty"`
	LiveLookin             *BaseballGameLiveLookinRestObject             `json:"liveLookin,omitempty"`
	PreviousPlay           *BaseballPlayRestObject                       `json:"previousPlay,omitempty"`
	HomeRuns               []BaseballPlayRestObject                      `json:"homeRuns,omitempty"`
	RecordSource           string                                        `json:"recordSource,omitempty"`
	IfNecessary            string                                        `json:"ifNecessary,omitempty"`
	IfNecessaryDescription string                                        `json:"ifNecessaryDescription,omitempty"`
	Day                    string                                        `json:"day,omitempty"`
	GameId                 string                                        `json:"gameId,omitempty"`
	Lineups                *BaseballLineupRestObject                     `json:"lineups,omitempty"`
}
