diff --git a/controller/CronController.go b/controller/CronController.go index 2a37b85..1782af2 100644 --- a/controller/CronController.go +++ b/controller/CronController.go @@ -3,7 +3,9 @@ package controller import ( "fmt" + "github.com/CalebRose/SimFBA/dbprovider" "github.com/CalebRose/SimFBA/managers" + "github.com/CalebRose/SimFBA/repository" ) func CronTest() { @@ -68,6 +70,13 @@ func SyncToNextWeekViaCron() { managers.MoveUpWeek() } managers.AssignTeamGrades() + + if ts.NFLSeasonOver && ts.CollegeSeasonOver { + db := dbprovider.GetInstance().GetDB() + ts.MoveUpSeason() + repository.SaveTimestamp(ts, db) + managers.GenerateOffseasonData() + } } } diff --git a/controller/FreeAgencyController.go b/controller/FreeAgencyController.go index abbcacf..08e5041 100644 --- a/controller/FreeAgencyController.go +++ b/controller/FreeAgencyController.go @@ -92,3 +92,8 @@ func TagPlayer(w http.ResponseWriter, r *http.Request) { json.NewEncoder(w).Encode(true) } + +func SyncExtensions(w http.ResponseWriter, r *http.Request) { + managers.SyncExtensionOffers() + json.NewEncoder(w).Encode(true) +} diff --git a/controller/GameplanController.go b/controller/GameplanController.go index d5fa14f..dd250d0 100644 --- a/controller/GameplanController.go +++ b/controller/GameplanController.go @@ -147,7 +147,7 @@ func CheckAllUserDepthChartsForInjuredPlayers(w http.ResponseWriter, r *http.Req // UpdateCollegeAIDepthCharts func UpdateCollegeAIDepthCharts(w http.ResponseWriter, r *http.Request) { - managers.SetAIGameplan() + // managers.SetAIGameplan() managers.UpdateCollegeAIDepthCharts() json.NewEncoder(w).Encode("Updated all CFB Depth Charts") } diff --git a/controller/ImportController.go b/controller/ImportController.go index 8b47089..7b2a31e 100644 --- a/controller/ImportController.go +++ b/controller/ImportController.go @@ -97,3 +97,7 @@ func Import2021CFBStats(w http.ResponseWriter, r *http.Request) { // managers.MigrateRetiredAndNFLPlayersToHistoricCFBTable() managers.ImportCFB2021PlayerStats() } + +func FixATHProgressions(w http.ResponseWriter, r *http.Request) { + managers.FixATHProgressions() +} diff --git a/controller/RequestsController.go b/controller/RequestsController.go index b71ddce..45b45a5 100644 --- a/controller/RequestsController.go +++ b/controller/RequestsController.go @@ -2,7 +2,6 @@ package controller import ( "encoding/json" - "fmt" "net/http" "github.com/CalebRose/SimFBA/managers" @@ -38,7 +37,7 @@ func CreateTeamRequest(w http.ResponseWriter, r *http.Request) { managers.CreateTeamRequest(request) - fmt.Fprintf(w, "Request Successfully Created") + json.NewEncoder(w).Encode(request) } func ApproveTeamRequest(w http.ResponseWriter, r *http.Request) { @@ -51,8 +50,8 @@ func ApproveTeamRequest(w http.ResponseWriter, r *http.Request) { } managers.ApproveTeamRequest(request) + json.NewEncoder(w).Encode(request) - fmt.Fprintf(w, "Request: %+v", request) } func RejectTeamRequest(w http.ResponseWriter, r *http.Request) { @@ -65,8 +64,8 @@ func RejectTeamRequest(w http.ResponseWriter, r *http.Request) { } managers.RejectTeamRequest(request) + json.NewEncoder(w).Encode(request) - fmt.Fprintf(w, "Request: %+v", request) } func RemoveUserFromTeam(w http.ResponseWriter, r *http.Request) { @@ -77,8 +76,8 @@ func RemoveUserFromTeam(w http.ResponseWriter, r *http.Request) { } managers.RemoveUserFromTeam(teamID) + json.NewEncoder(w).Encode(true) - // json.NewEncoder(w).Encode(team) } func ViewCFBTeamUponRequest(w http.ResponseWriter, r *http.Request) { @@ -115,8 +114,8 @@ func CreateNFLTeamRequest(w http.ResponseWriter, r *http.Request) { } managers.CreateNFLTeamRequest(request) + json.NewEncoder(w).Encode(request) - fmt.Fprintf(w, "Request Successfully Created") } func ApproveNFLTeamRequest(w http.ResponseWriter, r *http.Request) { @@ -129,8 +128,8 @@ func ApproveNFLTeamRequest(w http.ResponseWriter, r *http.Request) { } managers.ApproveNFLTeamRequest(request) + json.NewEncoder(w).Encode(request) - fmt.Fprintf(w, "Request: %+v", request) } func RejectNFLTeamRequest(w http.ResponseWriter, r *http.Request) { @@ -143,8 +142,8 @@ func RejectNFLTeamRequest(w http.ResponseWriter, r *http.Request) { } managers.RejectNFLTeamRequest(request) + json.NewEncoder(w).Encode(request) - fmt.Fprintf(w, "Request: %+v", request) } func RemoveNFLUserFromNFLTeam(w http.ResponseWriter, r *http.Request) { @@ -158,5 +157,5 @@ func RemoveNFLUserFromNFLTeam(w http.ResponseWriter, r *http.Request) { managers.RemoveUserFromNFLTeam(request) - // json.NewEncoder(w).Encode(team) + json.NewEncoder(w).Encode(true) } diff --git a/controller/StandingsController.go b/controller/StandingsController.go index 248f5ad..e9e8b9a 100644 --- a/controller/StandingsController.go +++ b/controller/StandingsController.go @@ -67,6 +67,6 @@ func GetAllNFLStandings(w http.ResponseWriter, r *http.Request) { } func CreateCollegeStandings(w http.ResponseWriter, r *http.Request) { - managers.GenerateCollegeStandings() + managers.GenerateNewSeasonStandings() json.NewEncoder(w).Encode("Standings Generated") } diff --git a/data/2026/2026_ATH_Fix.csv b/data/2026/2026_ATH_Fix.csv new file mode 100644 index 0000000..cd6183b --- /dev/null +++ b/data/2026/2026_ATH_Fix.csv @@ -0,0 +1,335 @@ +id,team_abbr,first_name,last_name,position,archetype,football_iq,speed,carrying,agility,catching,route_running,zone_coverage,man_coverage,strength,tackle,pass_block,run_block,pass_rush,run_defense,throw_power,throw_accuracy,kick_accuracy,kick_power,punt_accuracy,punt_power,is_redshirt,is_redshirting +87715,ACU,Christopher,Burk,ATH,Field General,28,32,10,24,14,5,14,16,33,24,0,1,10,18,24,18,0,3,9,9,0,0 +88058,ACU,Daniel,Caples,ATH,Return Specialist,12,44,8,21,10,13,27,16,12,12,0,6,8,9,12,12,9,7,8,7,0,0 +88131,ACU,John,Portugal,ATH,Strongside,17,36,9,27,5,0,16,18,48,25,3,0,11,18,8,13,1,1,8,0,0,0 +88235,ACU,Marc,Webster,ATH,Wingback,31,49,13,27,24,26,17,17,23,17,16,18,7,13,18,11,13,6,8,10,0,0 +87169,ALB,Erik,Vernon,ATH,Field General,31,30,9,22,14,6,14,15,26,23,0,5,9,18,24,23,5,0,1,2,0,0 +87230,ALB,Jeffrey,Wiest,ATH,Slotback,28,27,9,17,15,22,13,13,40,8,14,23,1,0,9,5,1,3,5,6,0,0 +89095,ALB,William,Stadig,ATH,Bandit,15,25,10,30,6,8,27,30,29,29,7,7,18,15,9,11,3,0,3,5,0,0 +85695,APST,Douglas,Lilley,ATH,Triple-Threat,22,54,30,28,31,17,19,17,22,12,19,16,2,8,32,31,8,16,1,2,0,0 +86894,APST,Tomas,Diaz,ATH,Strongside,25,35,15,25,8,12,34,30,49,32,11,5,12,20,13,8,11,2,11,4,0,0 +88827,APST,Richard,Gomez,ATH,Lineman,29,18,10,29,4,6,3,21,44,29,24,17,25,21,12,13,1,3,4,9,0,0 +88147,APSU,Charles,Unger,ATH,Slotback,30,32,10,27,22,31,12,8,54,9,5,28,4,0,8,9,4,8,1,3,0,0 +88360,APSU,Joseph,Smith,ATH,Wingback,28,32,9,20,23,24,11,13,19,6,9,13,3,3,12,12,9,6,0,8,0,0 +84914,BALL,Stanley,Dirig,ATH,Weakside,31,50,15,40,23,18,37,31,34,31,14,14,27,17,16,24,14,11,9,10,0,0 +84338,BAYL,Eduardo,Cruz,ATH,Return Specialist,27,51,36,35,39,22,22,38,23,21,9,14,24,13,28,28,10,14,12,12,0,0 +84365,BAYL,Benjamin,Chism,ATH,Bandit,33,52,21,48,29,17,45,50,39,27,10,10,32,30,28,29,9,11,9,10,0,0 +85696,BAYL,William,Holliday,ATH,Lineman,19,21,11,22,9,6,8,29,48,25,34,37,26,30,18,13,1,7,3,3,0,0 +85947,BAYL,Jon,Reigh,ATH,Bandit,29,34,14,33,27,12,35,41,25,20,6,5,20,20,18,14,4,5,1,3,0,0 +85150,BRY,Henry,Sullivan,ATH,Strongside,24,37,16,37,16,0,17,34,47,30,9,7,18,28,13,19,2,6,1,7,0,0 +85213,BRY,John,Thomas,ATH,Slotback,19,33,20,22,34,26,14,15,51,15,27,31,6,8,10,19,0,5,9,4,0,0 +86926,BUT,Ludmila,Collins,ATH,Strongside,29,31,13,29,6,4,27,28,45,21,2,4,18,28,7,5,4,9,9,6,0,0 +87840,BUT,David,Dixon,ATH,Wingback,27,41,10,25,32,21,14,11,20,9,6,8,9,4,7,5,9,9,4,8,0,0 +88703,BYU,Abel,Vega,ATH,Wingback,34,32,10,31,34,26,9,11,26,11,13,15,6,11,12,13,10,7,2,6,0,0 +89056,BYU,Matthew,Emry,ATH,Strongside,21,33,6,22,16,7,33,26,47,23,7,0,21,25,10,13,9,9,6,7,0,0 +85972,CAMP,Michael,Gurrola,ATH,Return Specialist,21,45,14,25,22,15,19,21,17,24,0,4,10,2,12,13,3,2,3,1,0,0 +88543,CAMP,Steven,Johnson,ATH,Wingback,28,43,8,21,21,21,8,12,10,13,9,9,2,8,8,13,9,5,8,6,0,0 +88620,CAMP,Marc,Bullis,ATH,Field General,27,31,9,20,11,5,24,10,20,25,3,8,10,17,24,19,6,0,8,3,0,0 +86290,CARK,Carlos,Acevedo,ATH,Return Specialist,17,43,14,30,15,18,13,26,19,12,1,4,8,4,13,14,2,3,1,3,0,0 +85990,CHSO,William,Dillinger,ATH,Strongside,26,35,16,35,23,7,31,25,45,28,8,3,25,22,19,13,2,9,5,1,0,0 +86030,CHSO,Kevin,Robertson,ATH,Return Specialist,19,40,19,30,20,16,25,23,21,17,1,4,9,0,8,12,9,8,0,3,0,0 +88748,CHSO,William,Schossow,ATH,Field General,37,34,13,28,16,12,15,21,35,24,10,8,14,23,24,28,5,11,13,8,0,0 +88585,CINC,Virgil,Harrison,ATH,Wingback,28,33,8,24,22,22,13,14,13,14,11,8,0,4,11,14,3,4,4,5,0,0 +89369,CINC,Curtis,Price,ATH,Triple-Threat,28,34,2,23,22,19,1,11,10,5,1,1,4,7,17,16,4,0,0,4,0,0 +89444,CINC,Timothy,Hart,ATH,Bandit,7,23,7,20,13,1,19,24,16,14,7,2,6,19,6,9,0,9,8,1,0,0 +85099,CLEM,Thomas,Hopkins,ATH,Wingback,22,43,36,25,28,32,17,13,29,10,12,10,2,2,15,17,4,5,0,2,0,0 +85879,DAV,William,Lee,ATH,Weakside,24,36,13,43,20,11,30,26,32,24,1,7,23,17,18,14,1,9,8,3,0,0 +88494,DAV,Mickey,Fitzpatrick,ATH,Slotback,31,33,8,28,20,32,9,10,43,14,11,34,2,0,12,5,9,4,4,1,0,0 +88819,DAV,Omar,Ayala,ATH,Wingback,28,49,8,28,23,20,7,13,17,14,8,19,0,1,6,14,6,4,3,3,0,0 +87119,DAY,Douglas,Clift,ATH,Lineman,26,14,7,13,6,4,2,14,37,26,15,30,23,22,1,3,1,1,6,1,0,0 +89793,DEL,Jesus,Castaneda,ATH,Field General,31,34,10,21,3,3,10,14,24,18,3,10,7,24,17,20,2,11,5,2,0,0 +90666,DEL,Duane,Fidler,ATH,Strongside,23,27,6,23,11,2,20,21,44,20,0,4,10,18,8,3,1,8,9,5,0,0 +85415,DRKE,Adam,Barton,ATH,Field General,31,40,10,29,14,0,16,28,35,21,9,2,11,27,26,26,8,8,7,3,0,0 +85508,DRKE,Jerry,Margan,ATH,Slotback,21,31,27,23,35,37,17,12,45,11,17,28,8,9,11,19,7,0,7,3,0,0 +86589,DRKE,Bernardo,Santiago,ATH,Soccer Player,19,29,10,32,15,9,9,4,24,10,1,9,9,3,12,9,30,36,38,25,0,0 +87099,DSU,Craig,Hamilton,ATH,Strongside,24,33,4,27,8,1,13,18,41,16,1,5,21,18,10,4,6,1,1,2,0,0 +87107,DSU,John,Anderson,ATH,Strongside,21,35,9,27,12,6,26,24,45,30,5,4,16,31,9,12,4,2,9,8,0,0 +87521,DSU,Pierre,Luper,ATH,Triple-Threat,30,45,10,29,17,10,12,12,13,5,6,10,8,5,18,18,5,11,1,5,0,0 +87142,DUKE,Walter,Navarra,ATH,Lineman,30,15,8,26,6,9,0,18,42,26,17,25,28,17,5,8,3,9,3,7,0,0 +87453,DUQ,Jason,Douglass,ATH,Triple-Threat,31,35,7,27,21,20,7,12,18,9,11,8,2,7,17,22,12,9,2,5,0,0 +87770,DUQ,James,West,ATH,Strongside,22,36,12,31,6,5,26,13,48,17,9,1,15,24,8,6,9,8,6,1,0,0 +89287,DUQ,Donald,Brackett,ATH,Field General,29,27,8,15,7,3,6,6,20,12,7,0,2,14,18,15,0,4,9,0,0,0 +84386,ECU,Clarence,Johnson,ATH,Triple-Threat,21,49,30,29,35,23,20,17,15,18,15,19,13,5,28,29,19,12,9,12,0,0 +84620,ECU,Brandon,Peine,ATH,Weakside,30,35,21,49,18,11,41,34,27,25,8,12,26,18,17,20,5,13,13,7,0,0 +84782,ECU,Jeremy,Hughes,ATH,Field General,36,46,23,33,20,13,23,33,38,36,7,7,19,32,29,31,12,8,7,8,0,0 +85447,EIU,Alvaro,Nunez,ATH,Wingback,22,35,34,30,38,27,13,17,15,10,19,11,4,8,12,16,1,5,1,8,0,0 +85534,EIU,Michael,Hoover,ATH,Strongside,27,39,18,33,20,1,28,19,47,38,4,5,21,25,15,10,1,2,0,4,0,0 +85916,EIU,Jerry,Wright,ATH,Weakside,20,33,10,44,14,12,29,31,39,21,2,7,16,21,11,11,4,6,3,7,0,0 +85601,EKU,Yong,Torrez,ATH,Wingback,20,53,34,32,28,34,23,17,36,14,14,15,10,5,13,11,11,10,6,8,0,0 +85918,EKU,Matthew,Vartan,ATH,Return Specialist,20,40,15,26,23,15,27,16,20,15,4,0,8,0,10,8,7,9,9,5,0,0 +86114,EKU,Andrzej,Blake,ATH,Slotback,26,40,28,28,34,27,19,21,58,19,28,27,4,9,17,20,3,4,9,9,0,0 +87079,ELON,Wesley,Mccracken,ATH,Strongside,21,39,9,27,19,8,27,29,47,16,1,4,10,18,5,14,6,3,4,2,0,0 +87260,ELON,Celso,Chamba,ATH,Strongside,23,36,14,26,7,3,34,23,41,19,8,4,17,29,6,12,4,2,4,0,0,0 +87307,ELON,Stanley,Totten,ATH,Soccer Player,13,18,9,29,13,5,3,2,23,6,1,4,9,3,5,7,19,28,18,16,0,0 +88959,FLA,William,Kiefer,ATH,Return Specialist,13,40,10,27,17,10,26,19,11,15,0,1,8,7,14,14,4,3,2,0,0,0 +89178,FLA,Jon,Hill,ATH,Strongside,27,38,9,29,16,0,31,29,40,22,7,7,20,32,7,7,7,1,6,4,0,0 +84848,FSU,Charles,Granberry,ATH,Triple-Threat,30,48,32,34,35,29,19,17,23,19,17,17,14,7,33,32,17,21,5,7,0,0 +88846,FSU,Richard,Gore,ATH,Wingback,28,38,9,22,26,23,13,10,11,10,10,12,8,8,6,8,7,6,9,9,0,0 +86657,GT,Clarence,Wilkerson,ATH,Field General,32,33,8,31,10,2,26,27,29,26,1,1,8,25,25,26,2,6,5,5,0,0 +88497,HAMP,Brian,Diefenderfer,ATH,Triple-Threat,30,40,10,22,20,22,10,14,16,7,9,10,2,4,23,20,14,10,6,8,0,0 +89381,HAMP,Charles,Hepner,ATH,Triple-Threat,29,31,2,15,16,18,1,13,14,1,7,5,0,8,18,15,6,8,5,1,0,0 +85558,HCU,Paul,Quintanilla,ATH,Strongside,21,40,15,32,14,3,25,30,50,38,7,4,23,21,17,15,6,2,0,0,0,0 +85770,HCU,Luiz,Ortega,ATH,Slotback,22,33,21,21,27,31,14,13,52,16,14,28,2,6,16,12,6,8,3,2,0,0 +86666,HCU,Lawrence,Dixon,ATH,Return Specialist,24,45,14,30,19,16,15,23,21,23,5,4,9,4,10,9,8,4,8,8,0,0 +88346,HCU,Robert,Carroll,ATH,Field General,27,34,10,20,12,1,18,18,29,18,7,9,10,19,18,24,8,9,4,2,0,0 +89126,HCU,John,Grubbs,ATH,Wingback,29,41,10,27,27,25,12,14,13,6,13,10,3,6,8,8,6,0,8,7,0,0 +88507,HOW,Nicholas,Soto,ATH,Slotback,29,36,10,20,28,26,7,9,54,14,11,29,1,1,8,9,9,0,3,9,0,0 +88888,ILLI,Robert,Perez,ATH,Triple-Threat,32,37,9,21,19,11,10,10,15,7,14,10,9,5,24,22,5,11,2,8,0,1 +89061,ILLI,Mario,Mccarty,ATH,Wingback,31,44,10,25,26,25,14,8,16,10,8,8,2,6,6,13,9,2,0,0,0,1 +85370,JMU,Christopher,Logan,ATH,Bandit,23,41,18,30,27,9,44,26,30,24,1,9,16,20,12,17,8,2,7,7,0,0 +88961,LAM,Gerard,Hasson,ATH,Field General,31,37,9,20,5,9,18,21,31,15,5,6,10,21,20,20,3,2,7,3,0,0 +86090,LIN,Genaro,Evangelista,ATH,Triple-Threat,22,52,33,28,22,28,13,17,19,14,11,13,0,9,23,26,18,13,0,2,0,0 +86134,LIN,Scott,Muir,ATH,Return Specialist,24,46,15,26,24,19,24,29,17,23,6,2,10,4,13,10,7,3,9,1,0,0 +86253,LIN,Scott,Arkwright,ATH,Field General,31,39,13,35,13,9,18,19,36,31,5,9,12,31,29,28,7,2,6,10,0,0 +89399,LIU,Roosevelt,Lawrence,ATH,Lineman,25,22,2,20,3,3,9,12,36,23,25,29,15,13,1,5,9,0,7,1,0,0 +85102,LOU,Steven,Freeman,ATH,Weakside,25,31,15,40,27,6,32,36,32,38,6,1,23,16,14,10,3,0,9,6,0,0 +86452,LOU,Michael,Klimczak,ATH,Slotback,22,40,23,27,23,34,19,12,51,12,28,37,3,6,15,15,2,2,1,2,0,0 +84747,LSU,Eugenio,Soto,ATH,Wingback,26,57,31,37,44,37,16,21,34,17,24,15,13,9,19,15,9,12,5,14,0,0 +90924,LSU,Komatmi,Breaux,ATH,Strongside,31,45,14,20,21,8,35,26,43,21,10,7,26,28,12,12,7,7,9,8,0,0 +87419,MCN,Nicholas,Allen,ATH,Triple-Threat,28,35,9,25,21,13,12,10,14,5,13,10,2,6,19,18,7,9,7,4,0,0 +89989,MCN,Gregory,Devito,ATH,Bandit,8,39,0,34,4,1,30,20,19,25,6,2,14,6,1,8,6,0,1,5,0,0 +85007,ME,David,Pizano,ATH,Field General,38,33,19,30,19,3,27,15,34,20,3,5,11,28,28,25,5,0,8,1,0,0 +85884,ME,Michael,Williams,ATH,Soccer Player,19,23,15,30,18,6,5,3,21,10,1,1,8,5,6,12,23,28,18,36,0,0 +86039,ME,Frederick,Harvey,ATH,Bandit,21,31,17,42,11,13,31,37,25,28,4,2,16,17,11,16,0,1,8,2,0,0 +85287,MONM,James,Taylor,ATH,Weakside,26,45,13,33,23,7,23,37,32,27,2,8,17,22,11,19,2,1,9,4,0,0 +85612,MONM,David,Reyburn,ATH,Soccer Player,21,31,16,32,21,1,9,5,18,8,0,0,10,0,8,14,39,28,29,29,0,0 +85727,MONM,Kenneth,Myers,ATH,Soccer Player,17,24,18,32,19,5,0,7,15,9,6,9,9,0,8,12,28,33,28,29,0,0 +85208,MORE,Mitchell,Martin,ATH,Bandit,28,40,14,34,13,7,33,27,29,24,0,9,23,27,15,16,2,1,3,0,0,0 +86233,MORE,Eugene,Mckinney,ATH,Triple-Threat,19,42,34,32,24,27,13,18,22,16,17,13,6,2,32,30,8,7,5,2,0,0 +86322,MORE,James,Wells,ATH,Field General,32,34,14,27,17,9,22,15,26,22,4,5,14,23,24,26,3,7,7,3,0,0 +87619,MORG,Gustavo,Quiroz,ATH,Soccer Player,12,24,8,27,13,6,4,1,19,8,1,8,8,7,8,13,15,17,26,16,0,0 +88836,MORG,Osvaldo,Chavez,ATH,Weakside,28,43,8,32,19,10,29,31,31,24,9,2,10,19,9,5,1,2,4,6,0,0 +89168,MORG,Rudolph,Pera,ATH,Slotback,28,39,9,28,32,28,9,7,44,14,6,23,6,7,13,14,6,3,5,1,0,0 +89365,MOST,Mohammad,Brown,ATH,Wingback,34,31,7,28,24,25,10,20,14,13,14,6,14,9,8,9,6,10,7,12,0,0 +89408,MOST,Arthur,Sanchez,ATH,Strongside,18,26,1,28,12,0,20,7,35,22,1,9,16,22,6,2,0,0,4,8,0,0 +90152,MOST,Thomas,Fluckiger,ATH,Slotback,20,21,3,14,10,27,0,11,40,0,3,28,8,0,9,4,8,0,2,8,0,0 +90480,MOST,Michael,Nosal,ATH,Wingback,20,33,1,20,29,22,2,8,19,8,8,4,3,2,8,2,6,2,8,8,0,0 +90537,MOST,Richard,Rogers,ATH,Slotback,24,27,4,21,11,22,5,10,44,7,6,18,2,9,5,2,5,0,3,5,0,0 +90555,MOST,Manuel,Rodriquez,ATH,Triple-Threat,21,43,7,16,16,10,1,6,8,5,0,6,1,6,15,15,5,9,9,0,0,0 +90635,MOST,Barry,Eley,ATH,Weakside,22,24,5,20,8,9,31,25,20,15,4,7,7,14,7,8,8,3,1,0,0,0 +90737,MOST,Arturo,Quijano,ATH,Soccer Player,9,11,6,23,7,6,2,6,6,0,6,8,3,5,0,2,25,21,16,20,0,0 +86990,MRCY,Kenneth,Kelsey,ATH,Field General,29,28,10,26,5,4,23,23,27,28,0,7,9,15,21,17,9,7,2,5,0,0 +87274,MRCY,Brad,Englebert,ATH,Wingback,27,41,8,26,21,26,9,14,10,12,6,14,8,5,14,5,9,9,2,9,0,0 +88970,MRCY,Charles,Essick,ATH,Wingback,29,35,10,24,32,24,11,13,13,9,7,14,7,0,10,14,4,2,1,7,0,0 +86183,MRMK,Brian,Durham,ATH,Wingback,22,48,27,32,28,27,18,18,23,12,12,16,4,9,18,13,2,1,7,9,0,0 +88828,MRMK,Roger,Nieri,ATH,Wingback,29,30,8,28,28,25,14,10,14,12,13,18,2,9,14,8,7,0,3,0,0,0 +89293,MRMK,Thomas,Chartier,ATH,Triple-Threat,25,43,2,20,11,12,4,10,10,1,7,6,2,1,18,19,1,4,7,0,0,0 +86543,MRST,William,Shigley,ATH,Triple-Threat,17,52,31,30,27,23,14,16,24,12,10,16,4,8,22,26,12,11,6,8,0,0 +89530,MRST,Robert,Almeida,ATH,Strongside,20,28,8,19,7,3,11,5,41,25,0,5,8,11,0,8,4,8,1,0,0,0 +89585,MRST,Dale,Wright,ATH,Field General,26,31,2,18,4,7,7,11,22,14,2,5,0,17,16,19,7,2,5,8,0,0 +89647,MRST,David,Sinohui,ATH,Wingback,28,36,7,15,15,16,6,11,16,1,7,3,7,5,7,7,2,6,1,3,0,0 +89718,MRST,Christopher,Savala,ATH,Wingback,21,29,2,18,22,21,8,9,24,6,4,7,5,3,7,6,2,7,9,0,0,0 +84419,NAVY,Timothy,Geyer,ATH,Wingback,23,47,33,30,39,35,28,23,28,21,15,26,13,10,17,19,6,7,11,10,0,0 +86457,NAVY,Jose,Escobedo,ATH,Lineman,21,25,11,29,7,4,10,21,51,41,22,37,20,25,11,13,6,7,2,9,0,0 +86503,NAVY,Arthur,French,ATH,Strongside,28,43,16,27,21,6,28,15,45,22,8,9,15,32,11,13,5,9,2,8,0,0 +85705,NCAT,Ismael,Ramirez,ATH,Return Specialist,22,42,12,32,20,18,13,25,18,12,5,4,10,5,12,11,5,8,0,6,0,0 +86089,NCAT,George,Weiher,ATH,Field General,34,34,10,30,10,9,15,14,39,22,6,3,10,32,28,30,8,1,5,2,0,0 +86496,NCAT,Hector,Coleman,ATH,Bandit,22,39,11,36,15,13,41,38,37,23,0,6,22,25,18,14,5,8,6,6,0,0 +88644,NCAT,Bao,Amin,ATH,Wingback,30,36,7,26,21,19,13,6,18,6,9,17,4,7,4,4,1,3,7,6,0,0 +87811,NCCU,Bruce,Gill,ATH,Field General,30,39,11,22,7,8,10,10,27,18,6,11,11,18,22,24,11,5,11,10,0,0 +88007,NCCU,Michael,Cox,ATH,Lineman,29,25,10,28,4,6,8,20,40,31,17,34,21,15,7,5,9,6,5,7,0,0 +88173,NCCU,Jerry,Coughlin,ATH,Strongside,19,33,10,26,12,4,14,28,46,28,1,1,14,15,8,10,1,1,3,1,0,0 +88657,NCCU,John,Best,ATH,Bandit,13,37,10,27,10,10,34,36,25,17,3,9,11,18,5,8,2,6,4,4,0,0 +84395,ND,Jason,Hagedorn,ATH,Lineman,29,25,22,38,14,13,14,31,46,32,39,43,36,25,15,20,8,5,13,11,0,0 +84653,ND,Jonathan,Jackson,ATH,Triple-Threat,31,47,28,38,34,33,22,23,17,22,18,16,9,7,38,40,22,20,10,10,0,1 +84777,ND,Pablo,Leon,ATH,Bandit,26,41,23,37,15,14,42,44,35,42,8,11,25,22,21,16,5,10,13,9,0,1 +87810,ND,Darwin,Trani,ATH,Slotback,29,38,9,25,29,22,11,9,54,10,7,22,5,0,8,13,7,7,8,7,0,0 +88064,ND,David,Archibald,ATH,Lineman,32,20,9,29,1,1,9,17,44,16,17,20,15,26,12,6,4,3,0,1,0,0 +88948,ND,Glenn,Evans,ATH,Bandit,15,39,7,35,12,8,30,32,32,22,1,7,15,17,12,4,6,1,2,1,0,0 +85165,NEB,Michael,Wilson,ATH,Strongside,20,43,15,39,22,8,25,21,47,35,2,7,24,35,14,19,5,1,3,0,0,1 +87557,NICH,Daniel,Bennett,ATH,Wingback,28,37,9,20,27,27,9,14,24,8,8,14,6,2,12,7,4,6,4,4,0,0 +88371,NICH,Henry,Astle,ATH,Triple-Threat,27,49,10,25,23,15,13,11,18,12,14,8,9,9,17,19,14,8,9,2,0,0 +84680,NIU,Steven,Kotar,ATH,Return Specialist,26,55,18,36,24,23,22,20,21,17,9,8,12,14,17,20,9,7,6,11,0,1 +86777,NIU,Carlos,Justiz,ATH,Bandit,22,33,12,41,22,14,30,29,34,22,4,5,15,24,14,19,0,4,3,1,0,1 +88596,NIU,Luis,Torres,ATH,Soccer Player,15,18,8,27,8,4,2,7,18,5,5,7,8,1,6,9,18,21,26,28,0,0 +85116,NORF,Bobby,Brown,ATH,Weakside,31,46,18,46,28,13,27,22,41,34,2,9,23,18,16,18,6,5,2,9,0,0 +85288,NORF,Travis,Collier,ATH,Slotback,24,39,29,30,23,31,13,17,54,15,14,25,4,2,15,17,0,8,2,9,0,0 +88212,NWST,William,Bradley,ATH,Slotback,30,33,8,27,19,30,13,11,41,14,11,27,3,2,5,6,8,7,8,1,0,0 +89179,NWST,Javier,Torres,ATH,Slotback,28,30,9,28,26,31,13,8,50,8,7,21,3,5,5,13,8,0,4,4,0,0 +84500,OHIO,Keith,Payne,ATH,Slotback,25,40,26,36,40,41,21,16,48,16,34,42,5,5,17,21,12,14,5,8,0,0 +84596,OHIO,Philip,Roberge,ATH,Field General,39,45,21,37,21,7,15,29,26,25,10,13,19,25,31,33,5,14,13,9,0,0 +84638,OKLA,Ricardo,Sanchez,ATH,Return Specialist,27,55,16,36,20,24,33,18,28,16,10,5,11,10,12,14,12,8,8,6,0,0 +87409,OREG,Lawrence,Mitchell,ATH,Bandit,12,27,10,27,23,8,37,20,30,25,4,6,19,20,9,7,1,8,8,2,0,0 +88885,OREG,Edward,Castro,ATH,Lineman,31,19,8,17,1,9,7,24,47,30,26,33,22,27,9,10,0,6,0,6,0,0 +89203,OREG,Brian,Robertson,ATH,Slotback,21,32,4,12,11,26,9,11,39,6,0,25,0,3,2,0,2,4,9,2,0,0 +84996,PITT,Brian,Boulette,ATH,Lineman,22,26,18,22,5,0,7,27,52,30,29,21,27,24,12,15,0,6,2,0,0,1 +85053,PITT,Jacob,Golden,ATH,Lineman,28,27,19,34,4,4,7,20,50,41,28,29,24,22,15,10,0,1,0,0,0,0 +88428,PITT,Ryan,Rasnake,ATH,Strongside,18,35,5,34,16,8,19,22,45,28,2,4,13,26,6,5,8,4,6,6,0,1 +84428,PNST,Fang,Sherpa,ATH,Slotback,24,42,25,36,42,27,22,20,47,20,31,32,12,13,20,22,9,10,8,10,0,0 +84689,PNST,Carlos,Berglund,ATH,Field General,39,39,24,28,22,13,22,27,38,39,14,5,19,30,33,30,8,6,7,11,0,0 +87356,PRE,Mark,Thompson,ATH,Slotback,32,36,9,20,22,20,13,12,48,8,13,23,9,1,11,8,4,0,3,6,0,0 +87651,PRE,Derek,Kavanagh,ATH,Lineman,31,27,9,20,8,4,1,23,41,32,29,23,24,27,12,12,2,7,3,1,0,0 +87833,PRE,Juan,Ramirezcastro,ATH,Strongside,19,38,8,20,5,1,16,18,48,31,6,9,11,21,10,6,8,3,7,0,0,0 +88919,RGV,Gary,Lewis,ATH,Bandit,12,29,8,31,22,9,25,35,27,21,2,3,12,15,14,13,8,5,6,9,0,0 +86859,RICH,Don,Cliver,ATH,Triple-Threat,31,44,11,31,28,16,15,12,17,15,7,10,2,3,21,22,7,7,10,7,0,0 +86910,RICH,Christopher,Sanchez,ATH,Lineman,31,23,10,27,3,9,3,15,49,25,34,28,28,16,6,7,6,1,2,8,0,0 +87234,RICH,Gilberto,Chavez,ATH,Slotback,28,35,8,28,23,31,13,13,51,7,11,27,8,2,8,11,7,4,4,4,0,0 +87259,RICH,Mario,Garduno,ATH,Soccer Player,12,23,9,29,8,6,0,0,23,6,1,4,9,6,12,5,23,16,22,18,0,0 +86326,RMU,Patrick,Mobley,ATH,Soccer Player,20,26,17,33,13,2,4,5,24,11,1,8,9,5,13,9,38,24,34,26,0,0 +86552,RMU,John,Klann,ATH,Field General,34,35,10,26,13,1,19,26,35,32,3,1,11,30,23,25,2,5,1,7,0,0 +85076,SCST,Ted,Cochran,ATH,Wingback,21,53,32,25,34,28,15,12,24,12,13,10,2,7,11,15,3,7,9,7,0,0 +85423,SCST,George,William,ATH,Return Specialist,20,52,12,25,20,17,28,14,15,18,2,0,9,8,10,12,7,2,8,0,0,0 +85481,SCST,Matthew,Bean,ATH,Triple-Threat,20,51,27,26,32,19,13,18,24,15,19,13,7,3,27,32,11,12,7,5,0,0 +86848,SEMO,Boris,Peterson,ATH,Field General,28,36,9,26,7,4,18,9,23,24,0,8,10,25,21,20,5,4,6,4,0,0 +86878,SEMO,Herman,Vargas,ATH,Return Specialist,12,41,10,27,14,10,29,15,19,18,5,0,8,4,13,13,6,7,9,0,0,0 +87407,SEMO,Jerry,Graham,ATH,Field General,27,29,10,22,13,5,24,23,23,26,0,4,8,28,21,17,7,1,4,2,0,0 +87920,SFA,Jason,Mein,ATH,Strongside,26,33,10,33,7,1,34,14,42,17,3,6,14,29,13,13,0,1,8,0,0,0 +88921,SFA,Margarito,Gavia,ATH,Return Specialist,16,38,10,20,12,12,32,12,13,9,9,8,9,8,10,8,5,0,7,4,0,0 +88960,SFA,William,Hanrahan,ATH,Triple-Threat,32,39,9,26,16,17,11,13,19,10,13,9,6,4,18,22,8,9,6,6,0,0 +88065,SFPA,Esteban,Caldera,ATH,Lineman,32,17,9,25,7,3,5,24,49,29,15,25,27,27,11,12,8,0,5,7,0,0 +88095,SFPA,Manuel,Olivas,ATH,Strongside,28,31,10,22,24,2,25,10,49,23,8,0,16,25,12,12,6,2,6,0,0,0 +88277,SFPA,Mark,Fried,ATH,Soccer Player,13,18,8,30,11,2,4,1,23,7,0,3,8,9,13,11,29,21,31,19,0,0 +86873,SHU,Josh,Musheyev,ATH,Lineman,29,29,10,18,8,3,9,16,45,30,20,20,16,29,6,5,0,2,2,0,0,0 +87028,SHU,David,Herron,ATH,Bandit,15,37,13,31,21,11,45,27,26,36,6,8,17,13,10,13,11,5,6,5,0,0 +87105,SHU,John,Sanders,ATH,Triple-Threat,38,47,15,31,23,26,13,15,26,11,19,17,12,9,29,27,18,12,11,15,0,0 +86399,SJSU,Bruce,Balmer,ATH,Triple-Threat,26,46,28,34,33,29,19,15,15,17,12,11,6,1,23,24,13,19,2,8,0,0 +84463,STAN,Armando,Barrios,ATH,Bandit,29,37,16,49,29,7,41,48,31,26,9,10,26,20,17,21,9,6,10,8,0,0 +84639,STAN,Douglas,Williams,ATH,Field General,37,38,17,36,22,11,24,32,25,27,11,8,14,27,33,29,12,12,7,11,0,0 +84866,STAN,Darrell,Wilcox,ATH,Lineman,25,23,23,37,12,8,11,30,47,45,39,43,33,30,22,24,6,11,8,14,0,0 +84894,STAN,Aaron,Frost,ATH,Return Specialist,22,53,19,31,28,21,19,15,20,28,9,6,11,8,12,21,14,6,10,14,0,0 +86690,STAN,Charles,Shamir,ATH,Triple-Threat,23,46,28,27,31,15,19,12,22,16,17,11,8,7,25,26,13,17,6,7,0,0 +86783,STAN,Gilbert,Lee,ATH,Strongside,27,38,10,34,27,0,32,34,54,25,5,7,18,24,18,18,8,3,5,3,0,0 +86796,STAN,Jorge,Alviso,ATH,Soccer Player,18,27,13,36,21,5,5,2,16,11,2,0,10,0,14,12,38,27,24,27,0,0 +87720,STBK,Ryan,White,ATH,Wingback,29,32,9,24,29,23,12,12,12,11,9,16,9,8,14,12,9,1,5,9,0,0 +88809,STBK,Jose,Ramirez,ATH,Weakside,27,30,8,30,17,10,37,32,32,15,7,2,19,11,11,14,9,5,0,6,0,0 +89213,STBK,Thomas,Milholland,ATH,Wingback,26,40,3,23,27,18,2,13,13,6,4,9,9,5,4,7,9,2,7,4,0,0 +87802,STET,Dale,Carmon,ATH,Slotback,27,26,9,28,16,27,7,12,52,8,9,26,7,6,10,6,5,9,7,9,0,0 +87906,STET,Benjamin,Trevino,ATH,Wingback,28,34,9,20,21,21,7,9,13,11,14,13,1,5,8,13,3,3,8,3,0,0 +87323,STMN,Jeffrey,Dillard,ATH,Field General,32,29,10,25,11,8,10,24,20,24,2,5,9,25,22,17,0,7,8,8,0,0 +87381,STMN,Jose,Jimenez,ATH,Soccer Player,13,19,9,29,12,7,7,7,18,9,3,5,9,4,7,6,26,19,19,23,0,0 +87477,STMN,Melvin,Daniel,ATH,Field General,31,36,9,24,14,8,7,23,27,17,9,0,9,28,20,18,5,9,8,2,0,0 +87211,STO,Jeffrey,Whiting,ATH,Bandit,12,32,9,31,5,8,44,22,20,19,3,6,15,21,9,12,8,4,8,3,0,0 +87296,STO,Alfonso,Ram,ATH,Bandit,14,31,10,35,8,9,28,36,23,19,4,1,13,24,6,6,8,9,4,7,0,0 +87873,STO,Srinivas,Clark,ATH,Weakside,29,37,9,36,6,8,21,31,30,33,3,0,14,16,7,14,2,0,2,7,0,0 +85355,SUU,Chad,Harrison,ATH,Slotback,17,34,26,30,32,37,18,14,58,13,25,25,4,1,17,18,7,9,8,7,0,0 +86367,SUU,Roger,Cummings,ATH,Weakside,20,36,14,44,19,10,39,20,32,21,8,7,24,19,10,13,3,0,2,7,0,0 +88179,SUU,Sean,Hollingsworth,ATH,Weakside,28,30,8,22,13,8,33,19,32,19,5,6,19,8,5,6,1,9,9,8,0,0 +87345,TAMC,Ivan,Guerrero,ATH,Soccer Player,15,17,9,29,14,8,2,0,20,5,5,6,9,5,12,10,30,22,34,19,0,0 +87659,TAMC,John,Harter,ATH,Wingback,28,49,9,24,22,24,9,7,24,6,5,15,5,6,7,11,7,4,1,7,0,0 +87744,TAMC,Samir,Steele,ATH,Return Specialist,16,41,9,26,15,13,25,18,12,15,4,6,8,1,10,10,8,2,7,3,0,0 +87118,TAR,Douglas,Miller,ATH,Soccer Player,11,20,7,26,13,6,5,5,13,6,1,7,6,3,11,12,24,29,31,19,0,0 +88436,TAR,Charles,Moller,ATH,Weakside,31,26,10,39,15,8,35,24,21,32,8,6,18,18,13,8,1,0,8,5,0,0 +88984,TAR,Richard,Jensen,ATH,Slotback,30,28,8,15,19,23,7,10,50,6,5,23,7,8,7,12,1,6,5,9,0,0 +84925,TEMP,Bryn,Gavidia,ATH,Triple-Threat,24,51,30,30,31,26,14,15,18,13,17,11,0,1,29,32,8,10,1,3,0,0 +88980,TEMP,Donald,Barker,ATH,Lineman,29,21,10,18,8,3,7,23,46,32,20,30,27,16,5,7,6,7,9,6,0,0 +88996,TEMP,Isaiah,Turner,ATH,Wingback,32,36,9,27,25,23,11,11,29,12,12,18,0,6,9,10,0,3,7,7,0,0 +84608,TENN,Albert,Trigg,ATH,Strongside,31,40,20,39,17,11,22,37,48,39,9,14,23,35,17,17,10,5,5,6,0,1 +86226,TENN,Jose,Gomez,ATH,Triple-Threat,24,47,27,28,28,25,18,16,22,10,13,11,8,5,32,25,10,5,8,0,0,1 +84991,TNST,William,Bresler,ATH,Triple-Threat,21,53,35,30,31,21,17,22,20,19,16,16,5,9,28,33,17,15,5,9,0,0 +85478,TNST,Ralph,Wright,ATH,Wingback,18,46,25,33,27,29,15,15,20,17,13,18,1,4,15,17,6,1,8,5,0,0 +85864,TNST,Samuel,Wang,ATH,Weakside,23,45,13,31,13,8,22,25,27,27,5,1,16,10,15,12,4,8,1,7,0,0 +85293,TNTC,Thomas,Jack,ATH,Bandit,26,43,13,32,19,9,28,34,32,34,3,0,17,24,12,12,7,0,2,0,0,0 +85621,TNTC,Gregory,Mcmahon,ATH,Field General,35,42,16,26,18,1,25,20,31,21,7,2,12,30,28,28,3,7,2,9,0,0 +86118,TNTC,Richard,Jones,ATH,Triple-Threat,17,51,25,33,32,29,14,16,23,13,10,16,9,1,27,32,12,12,6,8,0,0 +85073,TOW,Brian,Wilson,ATH,Strongside,26,37,11,39,14,6,25,33,49,35,8,4,20,32,13,13,0,1,8,3,0,0 +85496,TOW,Fritz,Temple,ATH,Strongside,23,36,12,26,20,0,19,17,54,39,7,1,23,24,17,14,9,5,3,3,0,0 +86142,TOW,David,Guinn,ATH,Field General,39,34,11,26,10,9,29,21,33,28,8,5,10,34,26,30,1,4,6,0,0,0 +84481,TULS,Richard,Smith,ATH,Weakside,32,42,15,31,20,19,29,32,28,34,7,6,25,27,24,23,8,11,8,14,0,1 +84544,TULS,Victor,Rodenberger,ATH,Strongside,31,43,15,43,22,12,38,33,48,29,5,14,25,28,17,16,7,5,6,13,0,1 +84858,TULS,Danny,Teague,ATH,Wingback,29,42,24,39,44,34,16,24,19,17,19,16,11,11,18,24,12,9,11,5,0,1 +85942,TULS,Robert,Richter,ATH,Slotback,21,41,27,28,35,27,13,19,50,15,18,36,6,7,14,11,4,1,6,3,0,1 +86504,TULS,Harjinder,Lie,ATH,Triple-Threat,17,48,32,30,33,17,19,16,21,18,12,11,2,0,27,29,11,6,3,3,0,1 +86806,TULS,Nicholas,Brewer,ATH,Strongside,25,44,10,26,20,3,27,31,51,21,6,2,19,25,11,12,2,4,6,2,0,1 +89950,TULS,Sergio,Mata,ATH,Lineman,29,17,4,23,5,0,7,17,39,16,27,29,23,11,3,0,5,4,6,3,0,0 +90118,TULS,Donald,Harlan,ATH,Lineman,21,22,8,18,2,3,2,12,42,14,12,25,14,20,2,6,6,7,9,6,0,0 +90361,TULS,Melvin,Davis,ATH,Lineman,26,14,6,11,3,8,1,18,42,18,24,17,10,24,2,2,1,5,7,2,0,0 +88369,TXST,Paul,Powers,ATH,Triple-Threat,30,39,10,23,29,19,8,11,19,14,11,8,2,9,21,20,11,6,4,9,0,0 +84912,UCLA,Jonathan,Pasley,ATH,Field General,38,42,22,33,24,11,32,29,25,27,7,9,12,27,29,29,12,13,13,9,0,0 +89146,UCLA,Parminder,Wei,ATH,Weakside,30,44,8,27,12,9,30,23,26,15,2,5,17,12,12,5,5,1,8,7,0,0 +84461,UGA,Russell,Halstead,ATH,Field General,41,40,17,32,15,12,20,16,37,30,12,13,12,29,31,34,9,5,8,9,0,0 +84815,UHOU,Nathan,Lancaster,ATH,Bandit,34,36,15,44,15,5,37,49,29,37,5,14,22,24,21,19,10,10,6,9,0,1 +86056,UHOU,Adam,Isaac,ATH,Triple-Threat,24,45,34,27,24,20,16,14,22,13,14,16,1,6,25,24,18,13,0,6,0,0 +86333,UHOU,Yong,Ashworth,ATH,Soccer Player,19,26,11,32,18,2,6,5,20,11,0,1,8,9,9,14,31,33,20,24,0,0 +85615,UMD,Patrick,Gilmore,ATH,Strongside,24,39,15,37,26,6,30,16,43,36,1,8,21,34,16,10,3,8,4,1,0,0 +85555,UNC,Geoffrey,Mitchel,ATH,Bandit,24,47,19,40,11,5,26,39,31,35,2,1,23,21,16,12,3,9,3,5,0,0 +86339,UNC,Patrick,Meyer,ATH,Weakside,22,36,13,44,18,9,23,27,35,20,6,4,17,24,18,17,7,4,6,2,0,0 +87449,UNH,Ricardo,Rodriguez,ATH,Strongside,17,39,12,33,8,5,17,18,44,27,8,2,20,15,7,12,6,2,1,9,0,0 +87756,UNH,Gerald,Pound,ATH,Return Specialist,16,36,8,23,14,14,31,19,19,18,1,3,8,1,12,5,0,6,0,9,0,0 +84712,UNLV,Steven,Hoag,ATH,Wingback,28,54,33,38,31,32,35,35,25,20,17,16,11,11,23,15,5,8,9,6,0,0 +85104,URI,Walter,Martinez,ATH,Bandit,29,41,12,44,28,14,27,39,30,38,9,9,16,20,12,16,4,1,1,5,0,0 +85357,URI,Eugenio,Ruiz,ATH,Lineman,29,23,13,27,7,2,6,23,45,37,21,34,28,27,17,15,9,5,8,2,0,0 +85683,URI,Fredric,Barg,ATH,Wingback,17,53,24,28,27,31,22,12,22,14,18,13,9,3,18,14,0,6,9,2,0,0 +85688,URI,Keith,Brucia,ATH,Bandit,25,44,17,38,23,11,41,43,28,31,9,2,20,20,14,19,9,4,0,5,0,0 +86952,USD,Sanford,Lynch,ATH,Lineman,27,23,8,18,8,9,6,17,43,24,17,16,16,28,6,9,4,1,3,3,0,0 +87086,USD,Jose,Pena,ATH,Strongside,26,33,14,30,21,9,27,28,48,27,6,9,10,21,10,6,2,4,0,3,0,0 +87156,USD,John,Kimak,ATH,Triple-Threat,29,43,12,27,21,20,13,9,16,10,13,11,10,6,26,25,11,9,9,2,0,0 +85487,UTM,William,Antonsen,ATH,Slotback,20,31,29,33,24,36,19,13,49,14,27,36,6,0,10,12,7,3,2,8,0,0 +85772,UTM,Nasser,Brandon,ATH,Lineman,26,29,19,21,7,9,4,25,47,30,29,28,33,28,19,11,0,0,8,3,0,0 +86732,UTM,Raul,Flores,ATH,Soccer Player,19,28,12,34,14,3,6,7,16,9,5,9,9,1,8,12,30,26,24,26,0,0 +87874,UTU,Rafael,Garcia,ATH,Weakside,30,33,10,29,22,10,39,32,20,23,4,8,11,5,14,13,6,9,3,1,0,0 +88605,UTU,Johnny,Bowden,ATH,Return Specialist,14,44,8,22,17,10,30,18,12,10,9,0,10,1,14,8,0,0,3,9,0,0 +87433,UWG,Christopher,Marchant,ATH,Lineman,31,29,10,15,5,0,9,20,46,25,31,33,16,15,7,11,1,0,6,8,0,0 +88253,UWG,Timothy,Logan,ATH,Strongside,24,35,11,29,13,8,34,17,46,31,8,2,18,30,9,13,9,5,6,0,0,0 +88294,VAL,James,Mccolligan,ATH,Bandit,15,33,9,29,8,8,34,32,32,19,9,2,12,21,14,13,0,2,0,2,0,0 +88887,VAL,Woodrow,Mitchell,ATH,Field General,31,31,9,27,6,5,10,19,34,21,5,6,9,27,24,21,7,6,5,4,0,0 +89439,VAL,David,Hartsfield,ATH,Lineman,20,23,9,13,6,3,6,14,36,10,27,13,11,23,6,1,4,0,8,8,0,0 +89712,VAL,Rafael,Florez,ATH,Triple-Threat,26,39,7,18,23,9,2,10,10,9,9,0,8,0,19,15,2,8,7,9,0,0 +89888,VAL,Richard,Ward,ATH,Weakside,27,24,0,15,19,5,25,27,23,18,1,2,5,14,4,4,3,0,7,2,0,0 +90114,VAL,William,Zielinski,ATH,Slotback,23,26,5,11,11,22,2,5,38,8,2,26,5,6,6,5,2,8,7,6,0,0 +90186,VAL,Carl,Turney,ATH,Triple-Threat,18,33,6,18,7,3,2,6,10,1,3,4,1,1,13,16,1,1,1,4,0,0 +90335,VAL,Mark,Fulop,ATH,Strongside,10,30,5,26,9,0,26,15,36,23,7,1,12,11,5,9,0,2,8,8,0,0 +90400,VAL,William,Stanley,ATH,Wingback,24,34,8,21,23,15,3,7,15,2,3,3,9,8,2,9,6,9,0,2,0,0 +90432,VAL,Juan,Busquets,ATH,Soccer Player,10,12,2,20,10,4,7,5,12,3,0,5,9,5,4,8,28,15,26,25,0,0 +90469,VAL,Dennis,Ponder,ATH,Strongside,17,25,1,26,6,1,29,7,41,10,1,5,15,10,2,9,1,3,4,1,0,0 +90840,VAL,Michael,Broadbent,ATH,Strongside,17,33,0,27,14,8,20,16,44,20,3,7,13,13,9,0,3,4,6,8,0,0 +85070,VILL,Edward,Williams,ATH,Return Specialist,21,40,17,25,24,17,19,11,17,14,4,3,9,0,13,11,0,3,7,9,0,0 +85212,VILL,Ronald,Williams,ATH,Strongside,25,35,12,35,20,4,29,18,50,28,6,9,25,21,15,10,6,4,5,9,0,0 +85903,VILL,Jeffrey,Higgs,ATH,Wingback,26,58,29,38,43,34,16,21,22,21,18,20,10,5,19,20,7,8,8,11,0,0 +89299,VT,Matthew,Iacono,ATH,Wingback,25,44,5,20,23,16,3,8,8,1,0,4,5,6,3,1,2,6,1,3,0,0 +90009,VT,Lawrence,Yee,ATH,Lineman,24,21,4,15,3,4,8,10,37,19,27,29,24,15,0,5,5,1,3,2,0,0 +90313,VT,Paul,Pierce,ATH,Lineman,28,23,0,10,7,2,0,13,42,29,28,25,20,17,5,9,8,6,5,3,0,0 +87063,WAG,Thomas,Benson,ATH,Lineman,32,24,9,24,6,5,1,20,44,32,25,25,28,27,9,6,9,2,3,6,0,0 +87422,WAG,Michael,Bunn,ATH,Field General,28,32,9,26,5,9,14,15,33,25,6,2,9,29,20,20,0,6,5,0,0,0 +87636,WAG,Jerzy,Wood,ATH,Wingback,30,48,9,23,21,20,11,10,21,5,14,19,3,0,7,12,0,5,4,6,0,0 +87714,WAG,David,Witzel,ATH,Strongside,24,30,14,27,19,2,28,17,45,25,0,8,15,16,11,8,3,6,0,5,0,0 +87993,WASH,Anthony,Chisholm,ATH,Lineman,31,28,10,28,8,7,2,22,46,17,33,29,24,17,10,7,7,6,8,0,0,1 +85021,WEBB,Ronaldo,Kaur,ATH,Bandit,23,41,12,38,18,10,28,39,39,28,4,7,19,27,14,12,7,9,8,6,0,0 +85024,WEBB,James,Alderson,ATH,Field General,37,34,12,30,14,4,12,18,38,24,2,0,10,31,24,28,6,7,0,9,0,0 +86576,WEBB,Seth,Durocher,ATH,Triple-Threat,23,40,34,29,21,29,13,15,22,14,15,13,1,7,30,31,11,7,3,1,0,0 +85143,WMU,Eugene,Haywood,ATH,Slotback,20,34,20,29,23,31,18,19,46,16,23,25,2,4,13,11,3,0,7,8,0,0 +85795,WMU,Steven,Tharp,ATH,Strongside,21,38,16,38,10,2,32,34,46,38,1,2,16,22,16,17,1,3,5,0,0,0 +86724,WVU,Jack,Goldstein,ATH,Slotback,22,38,24,31,36,35,17,17,58,12,15,36,2,6,16,14,2,8,5,5,0,1 +87642,WVU,Tod,Augustine,ATH,Lineman,30,20,8,29,6,6,2,17,48,20,24,31,23,24,5,9,0,2,3,2,0,1 +88626,WVU,Kurt,Merckx,ATH,Weakside,31,42,8,24,22,7,26,28,31,21,1,1,14,14,11,8,4,7,1,8,0,0 +89044,WVU,Joshua,Baldwin,ATH,Soccer Player,16,17,9,25,13,6,1,1,14,8,4,9,9,4,14,12,22,30,32,20,0,0 +89194,WVU,George,Trevino,ATH,Wingback,27,45,9,29,26,21,9,12,12,7,9,13,9,0,5,12,0,9,7,8,0,0 +88768,,Amado,Vasquez,ATH,Triple-Threat,31,36,8,23,15,12,9,7,10,8,7,9,8,0,17,21,7,8,4,4,0,0 +88792,,John,Vogt,ATH,Field General,32,34,10,25,13,2,9,23,23,23,5,1,8,20,21,24,4,2,1,9,0,0 +89187,,Louis,Kropf,ATH,Soccer Player,15,22,10,25,16,9,8,7,15,6,0,1,9,4,11,9,32,21,19,30,0,0 +89311,,Martin,Zuniga,ATH,Field General,25,28,3,19,7,0,17,5,20,15,6,8,3,15,19,15,8,4,6,4,0,0 +89554,,James,Marvel,ATH,Bandit,9,32,1,23,4,1,17,16,16,29,9,1,11,10,4,2,3,2,3,6,0,0 +89580,,Carl,Kim,ATH,Strongside,11,26,4,16,15,0,29,23,36,11,3,4,13,24,7,9,4,8,8,1,0,0 +89593,,Gregory,Delap,ATH,Weakside,23,24,4,33,13,5,29,13,23,22,4,5,10,9,5,7,2,1,7,6,0,0 +89632,,Michael,Bowman,ATH,Wingback,27,44,0,20,28,22,7,6,20,7,2,7,4,0,7,1,4,0,9,9,0,0 +89633,,Nicholas,Harmon,ATH,Return Specialist,11,34,3,20,14,8,21,8,9,6,4,6,2,0,7,8,1,8,1,9,0,0 +89701,,Quentin,Tartaglia,ATH,Slotback,22,20,7,21,10,27,5,13,40,6,1,16,6,6,2,4,7,3,9,0,0,0 +89768,,Peter,Davis,ATH,Field General,21,30,1,20,6,7,11,5,22,16,4,5,7,17,18,19,8,0,7,8,0,0 +89819,,Stephen,Hyde,ATH,Slotback,29,23,7,11,12,19,1,13,48,2,7,26,6,4,5,7,5,6,7,5,0,0 +89848,,Joel,Nuno,ATH,Lineman,31,24,2,24,2,8,10,17,39,21,19,14,13,21,6,4,10,8,6,5,0,0 +89854,,Mark,Berry,ATH,Triple-Threat,25,34,7,18,23,19,9,14,8,9,1,5,8,3,15,19,4,6,5,2,0,0 +89864,,Timothy,Gradney,ATH,Soccer Player,7,10,9,21,9,9,6,1,11,6,8,6,0,7,8,2,22,15,19,25,0,0 +89868,,Dong,Nguyen,ATH,Soccer Player,9,19,8,27,11,8,6,8,5,9,7,6,5,2,5,0,16,27,16,16,0,0 +89881,,Rogelio,Rosales,ATH,Bandit,9,37,7,26,16,0,34,33,28,12,0,8,12,11,4,8,4,5,2,0,0,0 +89891,,Norman,Todd,ATH,Slotback,23,26,5,13,12,27,6,11,36,8,5,25,5,0,8,7,9,4,2,8,0,0 +89928,,Cleveland,Covington,ATH,Soccer Player,11,12,7,26,11,9,2,7,7,2,9,6,4,1,2,5,22,18,20,10,0,0 +90004,,Anthony,Kane,ATH,Weakside,26,25,0,26,6,1,28,22,27,14,7,3,5,12,1,7,0,0,8,3,0,0 +90028,,Brian,Moes,ATH,Strongside,17,30,4,28,8,1,21,5,44,28,0,8,6,19,3,6,8,9,8,4,0,0 +90045,,David,Martin,ATH,Bandit,9,31,2,25,10,3,12,30,25,20,2,1,5,11,4,5,4,6,4,1,0,0 +90131,,Jack,Plata,ATH,Bandit,9,32,9,24,11,3,18,24,15,10,4,1,8,13,3,8,4,3,9,7,0,0 +90178,,Timothy,Judkins,ATH,Slotback,26,20,7,22,11,16,9,13,45,8,6,17,0,8,6,3,8,7,9,0,0,0 +90235,,Jeffrey,Fosson,ATH,Wingback,27,38,0,16,26,17,4,13,23,7,3,7,6,3,7,9,9,4,9,4,0,0 +90268,,Scott,Burns,ATH,Wingback,24,42,4,23,20,16,5,12,14,9,1,7,6,3,5,3,5,9,2,3,0,0 +90331,,Liesl,Keefe,ATH,Field General,27,30,4,18,0,1,16,5,23,15,8,9,9,11,17,15,1,6,9,2,0,0 +90439,,Norman,Anderson,ATH,Bandit,9,35,6,26,5,5,17,19,27,27,4,6,6,5,2,9,9,3,2,9,0,0 +90449,,Jason,Anderson,ATH,Bandit,9,19,1,23,4,1,25,11,17,8,5,1,9,15,1,1,1,1,4,1,0,0 +90494,,Alfredo,Gallardo,ATH,Strongside,10,29,8,20,9,1,28,8,35,15,7,2,9,24,0,6,5,7,4,8,0,0 +90507,,Dwight,Berns,ATH,Bandit,8,22,7,34,14,3,20,31,20,17,5,8,6,6,2,9,5,8,0,3,0,0 +90549,,Salvador,Goetz,ATH,Strongside,20,34,5,25,13,3,30,24,37,27,3,3,16,12,3,5,6,9,3,7,0,0 +90703,,Sergio,Bissonnette,ATH,Field General,23,26,2,17,4,3,11,8,20,15,5,6,2,11,15,18,9,6,1,6,0,0 +90709,,David,Aldrich,ATH,Bandit,11,30,2,20,6,5,29,28,29,16,6,7,8,14,1,5,2,3,3,3,0,0 +90749,,Kevin,Purcell,ATH,Strongside,20,34,9,28,12,8,15,20,36,22,6,8,11,12,3,1,7,6,0,5,0,0 +90767,,Michael,Grier,ATH,Bandit,10,39,5,34,10,4,23,17,20,28,2,2,11,16,8,8,9,0,9,1,0,0 +90797,,Luis,Martinez,ATH,Weakside,25,23,5,31,3,9,17,22,24,10,2,5,5,11,2,2,1,9,1,2,0,0 +90824,,Patrick,Swartz,ATH,Triple-Threat,29,38,7,24,12,18,7,10,10,0,2,2,7,6,17,19,1,3,2,9,0,0 +90839,,Bernard,Buffington,ATH,Field General,23,30,0,20,4,7,7,9,24,16,9,1,4,19,15,19,5,3,8,3,0,0 +90860,,Jesus,Ortiz,ATH,Wingback,21,27,7,18,22,18,6,13,7,1,8,1,2,1,0,7,9,6,4,3,0,0 diff --git a/footballModels.ts-2025-07-13T07_01_45.42.backup b/footballModels.ts-2025-07-13T07_01_45.42.backup new file mode 100644 index 0000000..1b6e6b1 --- /dev/null +++ b/footballModels.ts-2025-07-13T07_01_45.42.backup @@ -0,0 +1,8842 @@ +/* Do not change, this code is generated from Golang structs */ + + +export class FaceDataResponse { + PlayerID: number; + Accessories: string; + Body: string; + Ear: string; + Eye: string; + EyeLine: string; + Eyebrow: string; + FacialHair: string; + Glasses: string; + Hair: string; + HairBG: string; + HairFlip: boolean; + Head: string; + Jersey: string; + MiscLine: string; + Mouth: string; + MouthFlip: boolean; + Nose: string; + NoseFlip: boolean; + SmileLine: string; + BodySize: number; + EarSize: number; + EyeAngle: number; + EyeBrowAngle: number; + FaceSize: number; + FacialHairShave: string; + NoseSize: number; + SmileLineSize: number; + SkinColor: string; + HairColor: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayerID = source["PlayerID"]; + this.Accessories = source["Accessories"]; + this.Body = source["Body"]; + this.Ear = source["Ear"]; + this.Eye = source["Eye"]; + this.EyeLine = source["EyeLine"]; + this.Eyebrow = source["Eyebrow"]; + this.FacialHair = source["FacialHair"]; + this.Glasses = source["Glasses"]; + this.Hair = source["Hair"]; + this.HairBG = source["HairBG"]; + this.HairFlip = source["HairFlip"]; + this.Head = source["Head"]; + this.Jersey = source["Jersey"]; + this.MiscLine = source["MiscLine"]; + this.Mouth = source["Mouth"]; + this.MouthFlip = source["MouthFlip"]; + this.Nose = source["Nose"]; + this.NoseFlip = source["NoseFlip"]; + this.SmileLine = source["SmileLine"]; + this.BodySize = source["BodySize"]; + this.EarSize = source["EarSize"]; + this.EyeAngle = source["EyeAngle"]; + this.EyeBrowAngle = source["EyeBrowAngle"]; + this.FaceSize = source["FaceSize"]; + this.FacialHairShave = source["FacialHairShave"]; + this.NoseSize = source["NoseSize"]; + this.SmileLineSize = source["SmileLineSize"]; + this.SkinColor = source["SkinColor"]; + this.HairColor = source["HairColor"]; + } +} +export class NFLStandings { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + TeamName: string; + Mascot: string; + SeasonID: number; + Season: number; + LeagueID: number; + LeagueName: string; + ConferenceID: number; + ConferenceName: string; + TotalTies: number; + ConferenceTies: number; + DivisionID: number; + DivisionName: string; + DivisionWins: number; + DivisionLosses: number; + DivisionTies: number; + PostSeasonStatus: string; + TotalWins: number; + TotalLosses: number; + ConferenceWins: number; + ConferenceLosses: number; + RankedWins: number; + RankedLosses: number; + PointsFor: number; + PointsAgainst: number; + Streak: number; + HomeWins: number; + AwayWins: number; + Coach: string; + TeamAbbr: string; + TotalWinPercentage: number; + ConfWinPercentage: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.TeamName = source["TeamName"]; + this.Mascot = source["Mascot"]; + this.SeasonID = source["SeasonID"]; + this.Season = source["Season"]; + this.LeagueID = source["LeagueID"]; + this.LeagueName = source["LeagueName"]; + this.ConferenceID = source["ConferenceID"]; + this.ConferenceName = source["ConferenceName"]; + this.TotalTies = source["TotalTies"]; + this.ConferenceTies = source["ConferenceTies"]; + this.DivisionID = source["DivisionID"]; + this.DivisionName = source["DivisionName"]; + this.DivisionWins = source["DivisionWins"]; + this.DivisionLosses = source["DivisionLosses"]; + this.DivisionTies = source["DivisionTies"]; + this.PostSeasonStatus = source["PostSeasonStatus"]; + this.TotalWins = source["TotalWins"]; + this.TotalLosses = source["TotalLosses"]; + this.ConferenceWins = source["ConferenceWins"]; + this.ConferenceLosses = source["ConferenceLosses"]; + this.RankedWins = source["RankedWins"]; + this.RankedLosses = source["RankedLosses"]; + this.PointsFor = source["PointsFor"]; + this.PointsAgainst = source["PointsAgainst"]; + this.Streak = source["Streak"]; + this.HomeWins = source["HomeWins"]; + this.AwayWins = source["AwayWins"]; + this.Coach = source["Coach"]; + this.TeamAbbr = source["TeamAbbr"]; + this.TotalWinPercentage = source["TotalWinPercentage"]; + this.ConfWinPercentage = source["ConfWinPercentage"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLGameplan { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + OffensiveScheme: string; + OffRunToPassRatio: number; + OffFormation1Name: string; + OffForm1Weight: number; + OffForm1TraditionalRun: number; + OffForm1OptionRun: number; + OffForm1Pass: number; + OffForm1RPO: number; + OffFormation2Name: string; + OffForm2Weight: number; + OffForm2TraditionalRun: number; + OffForm2OptionRun: number; + OffForm2Pass: number; + OffForm2RPO: number; + OffFormation3Name: string; + OffForm3Weight: number; + OffForm3TraditionalRun: number; + OffForm3OptionRun: number; + OffForm3Pass: number; + OffForm3RPO: number; + OffFormation4Name: string; + OffForm4Weight: number; + OffForm4TraditionalRun: number; + OffForm4OptionRun: number; + OffForm4Pass: number; + OffForm4RPO: number; + OffFormation5Name: string; + OffForm5Weight: number; + OffForm5TraditionalRun: number; + OffForm5OptionRun: number; + OffForm5Pass: number; + OffForm5RPO: number; + RunnerDistributionQB: number; + RunnerDistributionRB1: number; + RunnerDistributionRB2: number; + RunnerDistributionRB3: number; + RunnerDistributionFB1: number; + RunnerDistributionFB2: number; + RunnerDistributionWR: number; + RunnerDistributionWRPosition: string; + RunnerDistributionWRID: number; + RunOutsideLeft: number; + RunOutsideRight: number; + RunInsideLeft: number; + RunInsideRight: number; + RunPowerLeft: number; + RunPowerRight: number; + RunDrawLeft: number; + RunDrawRight: number; + ReadOptionLeft: number; + ReadOptionRight: number; + SpeedOptionLeft: number; + SpeedOptionRight: number; + InvertedOptionLeft: number; + InvertedOptionRight: number; + TripleOptionLeft: number; + TripleOptionRight: number; + PassQuick: number; + PassShort: number; + PassLong: number; + PassDeep: number; + PassScreen: number; + PassPAShort: number; + PassPALong: number; + PassPADeep: number; + LeftVsRight: number; + ChoiceOutside: number; + ChoiceInside: number; + ChoicePower: number; + PeekOutside: number; + PeekInside: number; + PeekPower: number; + TargetingWR1: number; + TargetDepthWR1: string; + TargetingWR2: number; + TargetDepthWR2: string; + TargetingWR3: number; + TargetDepthWR3: string; + TargetingWR4: number; + TargetDepthWR4: string; + TargetingWR5: number; + TargetDepthWR5: string; + TargetingTE1: number; + TargetDepthTE1: string; + TargetingTE2: number; + TargetDepthTE2: string; + TargetingTE3: number; + TargetDepthTE3: string; + TargetingRB1: number; + TargetDepthRB1: string; + TargetingRB2: number; + TargetDepthRB2: string; + TargetingFB1: number; + TargetDepthFB1: string; + DefensiveScheme: string; + DefFormation1: string; + DefFormation1RunToPass: number; + DefFormation1BlitzWeight: number; + DefFormation1BlitzAggression: string; + DefFormation2: string; + DefFormation2RunToPass: number; + DefFormation2BlitzWeight: number; + DefFormation2BlitzAggression: string; + DefFormation3: string; + DefFormation3RunToPass: number; + DefFormation3BlitzWeight: number; + DefFormation3BlitzAggression: string; + DefFormation4: string; + DefFormation4RunToPass: number; + DefFormation4BlitzWeight: number; + DefFormation4BlitzAggression: string; + DefFormation5: string; + DefFormation5RunToPass: number; + DefFormation5BlitzWeight: number; + DefFormation5BlitzAggression: string; + BlitzSafeties: boolean; + BlitzCorners: boolean; + LinebackerCoverage: string; + CornersCoverage: string; + SafetiesCoverage: string; + DiveFocus: number; + PitchFocus: number; + PrimaryHB: number; + MaximumFGDistance: number; + GoFor4AndShort: number; + GoFor4AndLong: number; + HasSchemePenalty: boolean; + OffenseSchemePenalty: number; + DefenseSchemePenalty: number; + DefaultOffense: boolean; + DefaultDefense: boolean; + PreviousWeekBye: boolean; + FocusPlays: string; + DoubleTeam: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.OffRunToPassRatio = source["OffRunToPassRatio"]; + this.OffFormation1Name = source["OffFormation1Name"]; + this.OffForm1Weight = source["OffForm1Weight"]; + this.OffForm1TraditionalRun = source["OffForm1TraditionalRun"]; + this.OffForm1OptionRun = source["OffForm1OptionRun"]; + this.OffForm1Pass = source["OffForm1Pass"]; + this.OffForm1RPO = source["OffForm1RPO"]; + this.OffFormation2Name = source["OffFormation2Name"]; + this.OffForm2Weight = source["OffForm2Weight"]; + this.OffForm2TraditionalRun = source["OffForm2TraditionalRun"]; + this.OffForm2OptionRun = source["OffForm2OptionRun"]; + this.OffForm2Pass = source["OffForm2Pass"]; + this.OffForm2RPO = source["OffForm2RPO"]; + this.OffFormation3Name = source["OffFormation3Name"]; + this.OffForm3Weight = source["OffForm3Weight"]; + this.OffForm3TraditionalRun = source["OffForm3TraditionalRun"]; + this.OffForm3OptionRun = source["OffForm3OptionRun"]; + this.OffForm3Pass = source["OffForm3Pass"]; + this.OffForm3RPO = source["OffForm3RPO"]; + this.OffFormation4Name = source["OffFormation4Name"]; + this.OffForm4Weight = source["OffForm4Weight"]; + this.OffForm4TraditionalRun = source["OffForm4TraditionalRun"]; + this.OffForm4OptionRun = source["OffForm4OptionRun"]; + this.OffForm4Pass = source["OffForm4Pass"]; + this.OffForm4RPO = source["OffForm4RPO"]; + this.OffFormation5Name = source["OffFormation5Name"]; + this.OffForm5Weight = source["OffForm5Weight"]; + this.OffForm5TraditionalRun = source["OffForm5TraditionalRun"]; + this.OffForm5OptionRun = source["OffForm5OptionRun"]; + this.OffForm5Pass = source["OffForm5Pass"]; + this.OffForm5RPO = source["OffForm5RPO"]; + this.RunnerDistributionQB = source["RunnerDistributionQB"]; + this.RunnerDistributionRB1 = source["RunnerDistributionRB1"]; + this.RunnerDistributionRB2 = source["RunnerDistributionRB2"]; + this.RunnerDistributionRB3 = source["RunnerDistributionRB3"]; + this.RunnerDistributionFB1 = source["RunnerDistributionFB1"]; + this.RunnerDistributionFB2 = source["RunnerDistributionFB2"]; + this.RunnerDistributionWR = source["RunnerDistributionWR"]; + this.RunnerDistributionWRPosition = source["RunnerDistributionWRPosition"]; + this.RunnerDistributionWRID = source["RunnerDistributionWRID"]; + this.RunOutsideLeft = source["RunOutsideLeft"]; + this.RunOutsideRight = source["RunOutsideRight"]; + this.RunInsideLeft = source["RunInsideLeft"]; + this.RunInsideRight = source["RunInsideRight"]; + this.RunPowerLeft = source["RunPowerLeft"]; + this.RunPowerRight = source["RunPowerRight"]; + this.RunDrawLeft = source["RunDrawLeft"]; + this.RunDrawRight = source["RunDrawRight"]; + this.ReadOptionLeft = source["ReadOptionLeft"]; + this.ReadOptionRight = source["ReadOptionRight"]; + this.SpeedOptionLeft = source["SpeedOptionLeft"]; + this.SpeedOptionRight = source["SpeedOptionRight"]; + this.InvertedOptionLeft = source["InvertedOptionLeft"]; + this.InvertedOptionRight = source["InvertedOptionRight"]; + this.TripleOptionLeft = source["TripleOptionLeft"]; + this.TripleOptionRight = source["TripleOptionRight"]; + this.PassQuick = source["PassQuick"]; + this.PassShort = source["PassShort"]; + this.PassLong = source["PassLong"]; + this.PassDeep = source["PassDeep"]; + this.PassScreen = source["PassScreen"]; + this.PassPAShort = source["PassPAShort"]; + this.PassPALong = source["PassPALong"]; + this.PassPADeep = source["PassPADeep"]; + this.LeftVsRight = source["LeftVsRight"]; + this.ChoiceOutside = source["ChoiceOutside"]; + this.ChoiceInside = source["ChoiceInside"]; + this.ChoicePower = source["ChoicePower"]; + this.PeekOutside = source["PeekOutside"]; + this.PeekInside = source["PeekInside"]; + this.PeekPower = source["PeekPower"]; + this.TargetingWR1 = source["TargetingWR1"]; + this.TargetDepthWR1 = source["TargetDepthWR1"]; + this.TargetingWR2 = source["TargetingWR2"]; + this.TargetDepthWR2 = source["TargetDepthWR2"]; + this.TargetingWR3 = source["TargetingWR3"]; + this.TargetDepthWR3 = source["TargetDepthWR3"]; + this.TargetingWR4 = source["TargetingWR4"]; + this.TargetDepthWR4 = source["TargetDepthWR4"]; + this.TargetingWR5 = source["TargetingWR5"]; + this.TargetDepthWR5 = source["TargetDepthWR5"]; + this.TargetingTE1 = source["TargetingTE1"]; + this.TargetDepthTE1 = source["TargetDepthTE1"]; + this.TargetingTE2 = source["TargetingTE2"]; + this.TargetDepthTE2 = source["TargetDepthTE2"]; + this.TargetingTE3 = source["TargetingTE3"]; + this.TargetDepthTE3 = source["TargetDepthTE3"]; + this.TargetingRB1 = source["TargetingRB1"]; + this.TargetDepthRB1 = source["TargetDepthRB1"]; + this.TargetingRB2 = source["TargetingRB2"]; + this.TargetDepthRB2 = source["TargetDepthRB2"]; + this.TargetingFB1 = source["TargetingFB1"]; + this.TargetDepthFB1 = source["TargetDepthFB1"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.DefFormation1 = source["DefFormation1"]; + this.DefFormation1RunToPass = source["DefFormation1RunToPass"]; + this.DefFormation1BlitzWeight = source["DefFormation1BlitzWeight"]; + this.DefFormation1BlitzAggression = source["DefFormation1BlitzAggression"]; + this.DefFormation2 = source["DefFormation2"]; + this.DefFormation2RunToPass = source["DefFormation2RunToPass"]; + this.DefFormation2BlitzWeight = source["DefFormation2BlitzWeight"]; + this.DefFormation2BlitzAggression = source["DefFormation2BlitzAggression"]; + this.DefFormation3 = source["DefFormation3"]; + this.DefFormation3RunToPass = source["DefFormation3RunToPass"]; + this.DefFormation3BlitzWeight = source["DefFormation3BlitzWeight"]; + this.DefFormation3BlitzAggression = source["DefFormation3BlitzAggression"]; + this.DefFormation4 = source["DefFormation4"]; + this.DefFormation4RunToPass = source["DefFormation4RunToPass"]; + this.DefFormation4BlitzWeight = source["DefFormation4BlitzWeight"]; + this.DefFormation4BlitzAggression = source["DefFormation4BlitzAggression"]; + this.DefFormation5 = source["DefFormation5"]; + this.DefFormation5RunToPass = source["DefFormation5RunToPass"]; + this.DefFormation5BlitzWeight = source["DefFormation5BlitzWeight"]; + this.DefFormation5BlitzAggression = source["DefFormation5BlitzAggression"]; + this.BlitzSafeties = source["BlitzSafeties"]; + this.BlitzCorners = source["BlitzCorners"]; + this.LinebackerCoverage = source["LinebackerCoverage"]; + this.CornersCoverage = source["CornersCoverage"]; + this.SafetiesCoverage = source["SafetiesCoverage"]; + this.DiveFocus = source["DiveFocus"]; + this.PitchFocus = source["PitchFocus"]; + this.PrimaryHB = source["PrimaryHB"]; + this.MaximumFGDistance = source["MaximumFGDistance"]; + this.GoFor4AndShort = source["GoFor4AndShort"]; + this.GoFor4AndLong = source["GoFor4AndLong"]; + this.HasSchemePenalty = source["HasSchemePenalty"]; + this.OffenseSchemePenalty = source["OffenseSchemePenalty"]; + this.DefenseSchemePenalty = source["DefenseSchemePenalty"]; + this.DefaultOffense = source["DefaultOffense"]; + this.DefaultDefense = source["DefaultDefense"]; + this.PreviousWeekBye = source["PreviousWeekBye"]; + this.FocusPlays = source["FocusPlays"]; + this.DoubleTeam = source["DoubleTeam"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLExtensionOffer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLPlayerID: number; + TeamID: number; + SeasonID: number; + Team: string; + ContractLength: number; + Y1BaseSalary: number; + Y1Bonus: number; + Y2BaseSalary: number; + Y2Bonus: number; + Y3BaseSalary: number; + Y3Bonus: number; + Y4BaseSalary: number; + Y4Bonus: number; + Y5BaseSalary: number; + Y5Bonus: number; + TotalBonus: number; + TotalSalary: number; + ContractValue: number; + BonusPercentage: number; + AAV: number; + Rejections: number; + IsAccepted: boolean; + IsActive: boolean; + IsRejected: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLPlayerID = source["NFLPlayerID"]; + this.TeamID = source["TeamID"]; + this.SeasonID = source["SeasonID"]; + this.Team = source["Team"]; + this.ContractLength = source["ContractLength"]; + this.Y1BaseSalary = source["Y1BaseSalary"]; + this.Y1Bonus = source["Y1Bonus"]; + this.Y2BaseSalary = source["Y2BaseSalary"]; + this.Y2Bonus = source["Y2Bonus"]; + this.Y3BaseSalary = source["Y3BaseSalary"]; + this.Y3Bonus = source["Y3Bonus"]; + this.Y4BaseSalary = source["Y4BaseSalary"]; + this.Y4Bonus = source["Y4Bonus"]; + this.Y5BaseSalary = source["Y5BaseSalary"]; + this.Y5Bonus = source["Y5Bonus"]; + this.TotalBonus = source["TotalBonus"]; + this.TotalSalary = source["TotalSalary"]; + this.ContractValue = source["ContractValue"]; + this.BonusPercentage = source["BonusPercentage"]; + this.AAV = source["AAV"]; + this.Rejections = source["Rejections"]; + this.IsAccepted = source["IsAccepted"]; + this.IsActive = source["IsActive"]; + this.IsRejected = source["IsRejected"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLWaiverOffer { + ID: number; + TeamID: number; + Team: string; + WaiverOrder: number; + NFLPlayerID: number; + IsActive: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.WaiverOrder = source["WaiverOrder"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.IsActive = source["IsActive"]; + } +} +export class FreeAgencyOffer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLPlayerID: number; + TeamID: number; + Team: string; + ContractLength: number; + Y1BaseSalary: number; + Y1Bonus: number; + Y2BaseSalary: number; + Y2Bonus: number; + Y3BaseSalary: number; + Y3Bonus: number; + Y4BaseSalary: number; + Y4Bonus: number; + Y5BaseSalary: number; + Y5Bonus: number; + TotalBonus: number; + TotalSalary: number; + ContractValue: number; + BonusPercentage: number; + AAV: number; + IsActive: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLPlayerID = source["NFLPlayerID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.ContractLength = source["ContractLength"]; + this.Y1BaseSalary = source["Y1BaseSalary"]; + this.Y1Bonus = source["Y1Bonus"]; + this.Y2BaseSalary = source["Y2BaseSalary"]; + this.Y2Bonus = source["Y2Bonus"]; + this.Y3BaseSalary = source["Y3BaseSalary"]; + this.Y3Bonus = source["Y3Bonus"]; + this.Y4BaseSalary = source["Y4BaseSalary"]; + this.Y4Bonus = source["Y4Bonus"]; + this.Y5BaseSalary = source["Y5BaseSalary"]; + this.Y5Bonus = source["Y5Bonus"]; + this.TotalBonus = source["TotalBonus"]; + this.TotalSalary = source["TotalSalary"]; + this.ContractValue = source["ContractValue"]; + this.BonusPercentage = source["BonusPercentage"]; + this.AAV = source["AAV"]; + this.IsActive = source["IsActive"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLPlayerSeasonStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLPlayerID: number; + SeasonID: number; + Year: number; + PassingYards: number; + PassAttempts: number; + PassCompletions: number; + PassingTDs: number; + Interceptions: number; + LongestPass: number; + Sacks: number; + RushAttempts: number; + RushingYards: number; + RushingTDs: number; + Fumbles: number; + LongestRush: number; + Targets: number; + Catches: number; + ReceivingYards: number; + ReceivingTDs: number; + LongestReception: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + SacksMade: number; + ForcedFumbles: number; + RecoveredFumbles: number; + PassDeflections: number; + InterceptionsCaught: number; + Safeties: number; + DefensiveTDs: number; + FGMade: number; + FGAttempts: number; + LongestFG: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + KickoffTouchbacks: number; + Punts: number; + GrossPuntDistance: number; + NetPuntDistance: number; + PuntTouchbacks: number; + PuntsInside20: number; + KickReturns: number; + KickReturnTDs: number; + KickReturnYards: number; + PuntReturns: number; + PuntReturnTDs: number; + PuntReturnYards: number; + STSoloTackles: number; + STAssistedTackles: number; + PuntsBlocked: number; + FGBlocked: number; + Snaps: number; + Pancakes: number; + SacksAllowed: number; + PlayedGame: number; + StartedGame: number; + WasInjured: boolean; + WeeksOfRecovery: number; + InjuryType: string; + RevealResults: boolean; + TeamID: number; + Team: string; + PreviousTeamID: number; + PreviousTeam: string; + GameType: number; + GamesPlayed: number; + QBRating: number; + Tackles: number; + RushingAvg: number; + PassingAvg: number; + ReceivingAvg: number; + Completion: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLPlayerID = source["NFLPlayerID"]; + this.SeasonID = source["SeasonID"]; + this.Year = source["Year"]; + this.PassingYards = source["PassingYards"]; + this.PassAttempts = source["PassAttempts"]; + this.PassCompletions = source["PassCompletions"]; + this.PassingTDs = source["PassingTDs"]; + this.Interceptions = source["Interceptions"]; + this.LongestPass = source["LongestPass"]; + this.Sacks = source["Sacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingTDs = source["RushingTDs"]; + this.Fumbles = source["Fumbles"]; + this.LongestRush = source["LongestRush"]; + this.Targets = source["Targets"]; + this.Catches = source["Catches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.ReceivingTDs = source["ReceivingTDs"]; + this.LongestReception = source["LongestReception"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.SacksMade = source["SacksMade"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.RecoveredFumbles = source["RecoveredFumbles"]; + this.PassDeflections = source["PassDeflections"]; + this.InterceptionsCaught = source["InterceptionsCaught"]; + this.Safeties = source["Safeties"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.FGMade = source["FGMade"]; + this.FGAttempts = source["FGAttempts"]; + this.LongestFG = source["LongestFG"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.KickoffTouchbacks = source["KickoffTouchbacks"]; + this.Punts = source["Punts"]; + this.GrossPuntDistance = source["GrossPuntDistance"]; + this.NetPuntDistance = source["NetPuntDistance"]; + this.PuntTouchbacks = source["PuntTouchbacks"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.KickReturns = source["KickReturns"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.KickReturnYards = source["KickReturnYards"]; + this.PuntReturns = source["PuntReturns"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.STSoloTackles = source["STSoloTackles"]; + this.STAssistedTackles = source["STAssistedTackles"]; + this.PuntsBlocked = source["PuntsBlocked"]; + this.FGBlocked = source["FGBlocked"]; + this.Snaps = source["Snaps"]; + this.Pancakes = source["Pancakes"]; + this.SacksAllowed = source["SacksAllowed"]; + this.PlayedGame = source["PlayedGame"]; + this.StartedGame = source["StartedGame"]; + this.WasInjured = source["WasInjured"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryType = source["InjuryType"]; + this.RevealResults = source["RevealResults"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.GameType = source["GameType"]; + this.GamesPlayed = source["GamesPlayed"]; + this.QBRating = source["QBRating"]; + this.Tackles = source["Tackles"]; + this.RushingAvg = source["RushingAvg"]; + this.PassingAvg = source["PassingAvg"]; + this.ReceivingAvg = source["ReceivingAvg"]; + this.Completion = source["Completion"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLPlayerStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + IsPreseasonGame: boolean; + NFLPlayerID: number; + GameID: number; + WeekID: number; + SeasonID: number; + OpposingTeam: string; + Year: number; + PassingYards: number; + PassAttempts: number; + PassCompletions: number; + PassingTDs: number; + Interceptions: number; + LongestPass: number; + Sacks: number; + RushAttempts: number; + RushingYards: number; + RushingTDs: number; + Fumbles: number; + LongestRush: number; + Targets: number; + Catches: number; + ReceivingYards: number; + ReceivingTDs: number; + LongestReception: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + SacksMade: number; + ForcedFumbles: number; + RecoveredFumbles: number; + PassDeflections: number; + InterceptionsCaught: number; + Safeties: number; + DefensiveTDs: number; + FGMade: number; + FGAttempts: number; + LongestFG: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + KickoffTouchbacks: number; + Punts: number; + GrossPuntDistance: number; + NetPuntDistance: number; + PuntTouchbacks: number; + PuntsInside20: number; + KickReturns: number; + KickReturnTDs: number; + KickReturnYards: number; + PuntReturns: number; + PuntReturnTDs: number; + PuntReturnYards: number; + STSoloTackles: number; + STAssistedTackles: number; + PuntsBlocked: number; + FGBlocked: number; + Snaps: number; + Pancakes: number; + SacksAllowed: number; + PlayedGame: number; + StartedGame: number; + WasInjured: boolean; + WeeksOfRecovery: number; + InjuryType: string; + RevealResults: boolean; + TeamID: number; + Team: string; + PreviousTeamID: number; + PreviousTeam: string; + GameType: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.IsPreseasonGame = source["IsPreseasonGame"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.GameID = source["GameID"]; + this.WeekID = source["WeekID"]; + this.SeasonID = source["SeasonID"]; + this.OpposingTeam = source["OpposingTeam"]; + this.Year = source["Year"]; + this.PassingYards = source["PassingYards"]; + this.PassAttempts = source["PassAttempts"]; + this.PassCompletions = source["PassCompletions"]; + this.PassingTDs = source["PassingTDs"]; + this.Interceptions = source["Interceptions"]; + this.LongestPass = source["LongestPass"]; + this.Sacks = source["Sacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingTDs = source["RushingTDs"]; + this.Fumbles = source["Fumbles"]; + this.LongestRush = source["LongestRush"]; + this.Targets = source["Targets"]; + this.Catches = source["Catches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.ReceivingTDs = source["ReceivingTDs"]; + this.LongestReception = source["LongestReception"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.SacksMade = source["SacksMade"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.RecoveredFumbles = source["RecoveredFumbles"]; + this.PassDeflections = source["PassDeflections"]; + this.InterceptionsCaught = source["InterceptionsCaught"]; + this.Safeties = source["Safeties"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.FGMade = source["FGMade"]; + this.FGAttempts = source["FGAttempts"]; + this.LongestFG = source["LongestFG"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.KickoffTouchbacks = source["KickoffTouchbacks"]; + this.Punts = source["Punts"]; + this.GrossPuntDistance = source["GrossPuntDistance"]; + this.NetPuntDistance = source["NetPuntDistance"]; + this.PuntTouchbacks = source["PuntTouchbacks"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.KickReturns = source["KickReturns"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.KickReturnYards = source["KickReturnYards"]; + this.PuntReturns = source["PuntReturns"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.STSoloTackles = source["STSoloTackles"]; + this.STAssistedTackles = source["STAssistedTackles"]; + this.PuntsBlocked = source["PuntsBlocked"]; + this.FGBlocked = source["FGBlocked"]; + this.Snaps = source["Snaps"]; + this.Pancakes = source["Pancakes"]; + this.SacksAllowed = source["SacksAllowed"]; + this.PlayedGame = source["PlayedGame"]; + this.StartedGame = source["StartedGame"]; + this.WasInjured = source["WasInjured"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryType = source["InjuryType"]; + this.RevealResults = source["RevealResults"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.GameType = source["GameType"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLPlayer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; + TeamID: number; + CollegeID: number; + College: string; + TeamAbbr: string; + Experience: number; + HighSchool: string; + Hometown: string; + State: string; + IsActive: boolean; + IsPracticeSquad: boolean; + IsFreeAgent: boolean; + IsWaived: boolean; + IsOnTradeBlock: boolean; + IsAcceptingOffers: boolean; + IsNegotiating: boolean; + NegotiationRound: number; + SigningRound: number; + MinimumValue: number; + AAV: number; + DraftedTeamID: number; + DraftedTeam: string; + DraftedRound: number; + DraftPickID: number; + DraftedPick: number; + ShowLetterGrade: boolean; + HasProgressed: boolean; + Rejections: number; + ProBowls: number; + TagType: number; + Stats: NFLPlayerStats[]; + SeasonStats: NFLPlayerSeasonStats; + Contract: NFLContract; + Offers: FreeAgencyOffer[]; + WaiverOffers: NFLWaiverOffer[]; + Extensions: NFLExtensionOffer[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.CollegeID = source["CollegeID"]; + this.College = source["College"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Experience = source["Experience"]; + this.HighSchool = source["HighSchool"]; + this.Hometown = source["Hometown"]; + this.State = source["State"]; + this.IsActive = source["IsActive"]; + this.IsPracticeSquad = source["IsPracticeSquad"]; + this.IsFreeAgent = source["IsFreeAgent"]; + this.IsWaived = source["IsWaived"]; + this.IsOnTradeBlock = source["IsOnTradeBlock"]; + this.IsAcceptingOffers = source["IsAcceptingOffers"]; + this.IsNegotiating = source["IsNegotiating"]; + this.NegotiationRound = source["NegotiationRound"]; + this.SigningRound = source["SigningRound"]; + this.MinimumValue = source["MinimumValue"]; + this.AAV = source["AAV"]; + this.DraftedTeamID = source["DraftedTeamID"]; + this.DraftedTeam = source["DraftedTeam"]; + this.DraftedRound = source["DraftedRound"]; + this.DraftPickID = source["DraftPickID"]; + this.DraftedPick = source["DraftedPick"]; + this.ShowLetterGrade = source["ShowLetterGrade"]; + this.HasProgressed = source["HasProgressed"]; + this.Rejections = source["Rejections"]; + this.ProBowls = source["ProBowls"]; + this.TagType = source["TagType"]; + this.Stats = this.convertValues(source["Stats"], NFLPlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], NFLPlayerSeasonStats); + this.Contract = this.convertValues(source["Contract"], NFLContract); + this.Offers = this.convertValues(source["Offers"], FreeAgencyOffer); + this.WaiverOffers = this.convertValues(source["WaiverOffers"], NFLWaiverOffer); + this.Extensions = this.convertValues(source["Extensions"], NFLExtensionOffer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLDepthChartPosition { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + DepthChartID: number; + PlayerID: number; + Position: string; + PositionLevel: string; + FirstName: string; + LastName: string; + OriginalPosition: string; + NFLPlayer: NFLPlayer; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.DepthChartID = source["DepthChartID"]; + this.PlayerID = source["PlayerID"]; + this.Position = source["Position"]; + this.PositionLevel = source["PositionLevel"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.OriginalPosition = source["OriginalPosition"]; + this.NFLPlayer = this.convertValues(source["NFLPlayer"], NFLPlayer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLDepthChart { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + DepthChartPlayers: NFLDepthChartPosition[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.DepthChartPlayers = this.convertValues(source["DepthChartPlayers"], NFLDepthChartPosition); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTeamSeasonStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + SeasonID: number; + Year: number; + PointsScored: number; + PointsAgainst: number; + TwoPointTries: number; + TwoPointSucceed: number; + PassingYards: number; + PassingAttempts: number; + PassingCompletions: number; + LongestPass: number; + PassingTouchdowns: number; + PassingInterceptions: number; + QBRating: number; + QBSacks: number; + RushAttempts: number; + RushingYards: number; + RushingYardsPerAttempt: number; + LongestRush: number; + RushingTouchdowns: number; + RushingFumbles: number; + ReceivingTargets: number; + ReceivingCatches: number; + ReceivingYards: number; + YardsPerCatch: number; + ReceivingTouchdowns: number; + ReceivingFumbles: number; + PassingYardsAllowed: number; + PassingTDsAllowed: number; + PassingCompletionsAllowed: number; + RushingYardsAllowed: number; + RushingTDsAllowed: number; + RushingYardsPerAttemptAllowed: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + DefensiveSacks: number; + ForcedFumbles: number; + FumblesRecovered: number; + DefensiveInterceptions: number; + TurnoverYards: number; + DefensiveTDs: number; + Safeties: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + ExtraPointPercentage: number; + FieldGoalsMade: number; + FieldGoalsAttempted: number; + FieldGoalsPercentage: number; + LongestFieldGoal: number; + KickoffTBs: number; + PuntTBs: number; + Punts: number; + PuntYards: number; + PuntsInside20: number; + PuntAverage: number; + Inside20YardLine: number; + KickReturnYards: number; + KickReturnTDs: number; + PuntReturnYards: number; + PuntReturnTDs: number; + OffensivePenalties: number; + DefensivePenalties: number; + OffPenaltyYards: number; + DefPenaltyYards: number; + Score1Q: number; + Score2Q: number; + Score3Q: number; + Score4Q: number; + Score5Q: number; + Score6Q: number; + Score7Q: number; + ScoreOT: number; + OffensiveScheme: string; + DefensiveScheme: string; + OffensiveSnaps: number; + DefensiveSnaps: number; + SpecialTeamSnaps: number; + GameType: number; + RevealResults: boolean; + GamesPlayed: number; + TotalOffensiveYards: number; + TotalYardsAllowed: number; + Fumbles: number; + QBRating: number; + Tackles: number; + Turnovers: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.SeasonID = source["SeasonID"]; + this.Year = source["Year"]; + this.PointsScored = source["PointsScored"]; + this.PointsAgainst = source["PointsAgainst"]; + this.TwoPointTries = source["TwoPointTries"]; + this.TwoPointSucceed = source["TwoPointSucceed"]; + this.PassingYards = source["PassingYards"]; + this.PassingAttempts = source["PassingAttempts"]; + this.PassingCompletions = source["PassingCompletions"]; + this.LongestPass = source["LongestPass"]; + this.PassingTouchdowns = source["PassingTouchdowns"]; + this.PassingInterceptions = source["PassingInterceptions"]; + this.QBRating = source["QBRating"]; + this.QBSacks = source["QBSacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingYardsPerAttempt = source["RushingYardsPerAttempt"]; + this.LongestRush = source["LongestRush"]; + this.RushingTouchdowns = source["RushingTouchdowns"]; + this.RushingFumbles = source["RushingFumbles"]; + this.ReceivingTargets = source["ReceivingTargets"]; + this.ReceivingCatches = source["ReceivingCatches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.YardsPerCatch = source["YardsPerCatch"]; + this.ReceivingTouchdowns = source["ReceivingTouchdowns"]; + this.ReceivingFumbles = source["ReceivingFumbles"]; + this.PassingYardsAllowed = source["PassingYardsAllowed"]; + this.PassingTDsAllowed = source["PassingTDsAllowed"]; + this.PassingCompletionsAllowed = source["PassingCompletionsAllowed"]; + this.RushingYardsAllowed = source["RushingYardsAllowed"]; + this.RushingTDsAllowed = source["RushingTDsAllowed"]; + this.RushingYardsPerAttemptAllowed = source["RushingYardsPerAttemptAllowed"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.DefensiveSacks = source["DefensiveSacks"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.FumblesRecovered = source["FumblesRecovered"]; + this.DefensiveInterceptions = source["DefensiveInterceptions"]; + this.TurnoverYards = source["TurnoverYards"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.Safeties = source["Safeties"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.ExtraPointPercentage = source["ExtraPointPercentage"]; + this.FieldGoalsMade = source["FieldGoalsMade"]; + this.FieldGoalsAttempted = source["FieldGoalsAttempted"]; + this.FieldGoalsPercentage = source["FieldGoalsPercentage"]; + this.LongestFieldGoal = source["LongestFieldGoal"]; + this.KickoffTBs = source["KickoffTBs"]; + this.PuntTBs = source["PuntTBs"]; + this.Punts = source["Punts"]; + this.PuntYards = source["PuntYards"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.PuntAverage = source["PuntAverage"]; + this.Inside20YardLine = source["Inside20YardLine"]; + this.KickReturnYards = source["KickReturnYards"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.OffensivePenalties = source["OffensivePenalties"]; + this.DefensivePenalties = source["DefensivePenalties"]; + this.OffPenaltyYards = source["OffPenaltyYards"]; + this.DefPenaltyYards = source["DefPenaltyYards"]; + this.Score1Q = source["Score1Q"]; + this.Score2Q = source["Score2Q"]; + this.Score3Q = source["Score3Q"]; + this.Score4Q = source["Score4Q"]; + this.Score5Q = source["Score5Q"]; + this.Score6Q = source["Score6Q"]; + this.Score7Q = source["Score7Q"]; + this.ScoreOT = source["ScoreOT"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.OffensiveSnaps = source["OffensiveSnaps"]; + this.DefensiveSnaps = source["DefensiveSnaps"]; + this.SpecialTeamSnaps = source["SpecialTeamSnaps"]; + this.GameType = source["GameType"]; + this.RevealResults = source["RevealResults"]; + this.GamesPlayed = source["GamesPlayed"]; + this.TotalOffensiveYards = source["TotalOffensiveYards"]; + this.TotalYardsAllowed = source["TotalYardsAllowed"]; + this.Fumbles = source["Fumbles"]; + this.QBRating = source["QBRating"]; + this.Tackles = source["Tackles"]; + this.Turnovers = source["Turnovers"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTeamStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + GameID: number; + WeekID: number; + SeasonID: number; + OpposingTeam: string; + IsPreseasonGame: boolean; + PointsScored: number; + PointsAgainst: number; + TwoPointTries: number; + TwoPointSucceed: number; + PassingYards: number; + PassingAttempts: number; + PassingCompletions: number; + LongestPass: number; + PassingTouchdowns: number; + PassingInterceptions: number; + QBRating: number; + QBSacks: number; + RushAttempts: number; + RushingYards: number; + RushingYardsPerAttempt: number; + LongestRush: number; + RushingTouchdowns: number; + RushingFumbles: number; + ReceivingTargets: number; + ReceivingCatches: number; + ReceivingYards: number; + YardsPerCatch: number; + ReceivingTouchdowns: number; + ReceivingFumbles: number; + PassingYardsAllowed: number; + PassingTDsAllowed: number; + PassingCompletionsAllowed: number; + RushingYardsAllowed: number; + RushingTDsAllowed: number; + RushingYardsPerAttemptAllowed: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + DefensiveSacks: number; + ForcedFumbles: number; + FumblesRecovered: number; + DefensiveInterceptions: number; + TurnoverYards: number; + DefensiveTDs: number; + Safeties: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + ExtraPointPercentage: number; + FieldGoalsMade: number; + FieldGoalsAttempted: number; + FieldGoalsPercentage: number; + LongestFieldGoal: number; + KickoffTBs: number; + PuntTBs: number; + Punts: number; + PuntYards: number; + PuntsInside20: number; + PuntAverage: number; + Inside20YardLine: number; + KickReturnYards: number; + KickReturnTDs: number; + PuntReturnYards: number; + PuntReturnTDs: number; + OffensivePenalties: number; + DefensivePenalties: number; + OffPenaltyYards: number; + DefPenaltyYards: number; + Score1Q: number; + Score2Q: number; + Score3Q: number; + Score4Q: number; + Score5Q: number; + Score6Q: number; + Score7Q: number; + ScoreOT: number; + OffensiveScheme: string; + DefensiveScheme: string; + OffensiveSnaps: number; + DefensiveSnaps: number; + SpecialTeamSnaps: number; + GameType: number; + RevealResults: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.GameID = source["GameID"]; + this.WeekID = source["WeekID"]; + this.SeasonID = source["SeasonID"]; + this.OpposingTeam = source["OpposingTeam"]; + this.IsPreseasonGame = source["IsPreseasonGame"]; + this.PointsScored = source["PointsScored"]; + this.PointsAgainst = source["PointsAgainst"]; + this.TwoPointTries = source["TwoPointTries"]; + this.TwoPointSucceed = source["TwoPointSucceed"]; + this.PassingYards = source["PassingYards"]; + this.PassingAttempts = source["PassingAttempts"]; + this.PassingCompletions = source["PassingCompletions"]; + this.LongestPass = source["LongestPass"]; + this.PassingTouchdowns = source["PassingTouchdowns"]; + this.PassingInterceptions = source["PassingInterceptions"]; + this.QBRating = source["QBRating"]; + this.QBSacks = source["QBSacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingYardsPerAttempt = source["RushingYardsPerAttempt"]; + this.LongestRush = source["LongestRush"]; + this.RushingTouchdowns = source["RushingTouchdowns"]; + this.RushingFumbles = source["RushingFumbles"]; + this.ReceivingTargets = source["ReceivingTargets"]; + this.ReceivingCatches = source["ReceivingCatches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.YardsPerCatch = source["YardsPerCatch"]; + this.ReceivingTouchdowns = source["ReceivingTouchdowns"]; + this.ReceivingFumbles = source["ReceivingFumbles"]; + this.PassingYardsAllowed = source["PassingYardsAllowed"]; + this.PassingTDsAllowed = source["PassingTDsAllowed"]; + this.PassingCompletionsAllowed = source["PassingCompletionsAllowed"]; + this.RushingYardsAllowed = source["RushingYardsAllowed"]; + this.RushingTDsAllowed = source["RushingTDsAllowed"]; + this.RushingYardsPerAttemptAllowed = source["RushingYardsPerAttemptAllowed"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.DefensiveSacks = source["DefensiveSacks"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.FumblesRecovered = source["FumblesRecovered"]; + this.DefensiveInterceptions = source["DefensiveInterceptions"]; + this.TurnoverYards = source["TurnoverYards"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.Safeties = source["Safeties"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.ExtraPointPercentage = source["ExtraPointPercentage"]; + this.FieldGoalsMade = source["FieldGoalsMade"]; + this.FieldGoalsAttempted = source["FieldGoalsAttempted"]; + this.FieldGoalsPercentage = source["FieldGoalsPercentage"]; + this.LongestFieldGoal = source["LongestFieldGoal"]; + this.KickoffTBs = source["KickoffTBs"]; + this.PuntTBs = source["PuntTBs"]; + this.Punts = source["Punts"]; + this.PuntYards = source["PuntYards"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.PuntAverage = source["PuntAverage"]; + this.Inside20YardLine = source["Inside20YardLine"]; + this.KickReturnYards = source["KickReturnYards"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.OffensivePenalties = source["OffensivePenalties"]; + this.DefensivePenalties = source["DefensivePenalties"]; + this.OffPenaltyYards = source["OffPenaltyYards"]; + this.DefPenaltyYards = source["DefPenaltyYards"]; + this.Score1Q = source["Score1Q"]; + this.Score2Q = source["Score2Q"]; + this.Score3Q = source["Score3Q"]; + this.Score4Q = source["Score4Q"]; + this.Score5Q = source["Score5Q"]; + this.Score6Q = source["Score6Q"]; + this.Score7Q = source["Score7Q"]; + this.ScoreOT = source["ScoreOT"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.OffensiveSnaps = source["OffensiveSnaps"]; + this.DefensiveSnaps = source["DefensiveSnaps"]; + this.SpecialTeamSnaps = source["SpecialTeamSnaps"]; + this.GameType = source["GameType"]; + this.RevealResults = source["RevealResults"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLDraftPick { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + SeasonID: number; + Season: number; + DrafteeID: number; + DraftRound: number; + DraftNumber: number; + TeamID: number; + Team: string; + OriginalTeamID: number; + OriginalTeam: string; + PreviousTeamID: number; + PreviousTeam: string; + DraftValue: number; + Notes: string; + SelectedPlayerID: number; + SelectedPlayerName: string; + SelectedPlayerPosition: string; + IsCompensation: boolean; + IsVoid: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.SeasonID = source["SeasonID"]; + this.Season = source["Season"]; + this.DrafteeID = source["DrafteeID"]; + this.DraftRound = source["DraftRound"]; + this.DraftNumber = source["DraftNumber"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.OriginalTeamID = source["OriginalTeamID"]; + this.OriginalTeam = source["OriginalTeam"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.DraftValue = source["DraftValue"]; + this.Notes = source["Notes"]; + this.SelectedPlayerID = source["SelectedPlayerID"]; + this.SelectedPlayerName = source["SelectedPlayerName"]; + this.SelectedPlayerPosition = source["SelectedPlayerPosition"]; + this.IsCompensation = source["IsCompensation"]; + this.IsVoid = source["IsVoid"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLContract { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + PlayerID: number; + NFLPlayerID: number; + TeamID: number; + Team: string; + OriginalTeamID: number; + OriginalTeam: string; + ContractLength: number; + Y1BaseSalary: number; + Y1Bonus: number; + Y2BaseSalary: number; + Y2Bonus: number; + Y3BaseSalary: number; + Y3Bonus: number; + Y4BaseSalary: number; + Y4Bonus: number; + Y5BaseSalary: number; + Y5Bonus: number; + BonusPercentage: number; + ContractType: string; + ContractValue: number; + SigningValue: number; + IsActive: boolean; + IsComplete: boolean; + IsExtended: boolean; + HasProgressed: boolean; + PlayerRetired: boolean; + TagType: number; + IsTagged: boolean; + IsCut: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.PlayerID = source["PlayerID"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.OriginalTeamID = source["OriginalTeamID"]; + this.OriginalTeam = source["OriginalTeam"]; + this.ContractLength = source["ContractLength"]; + this.Y1BaseSalary = source["Y1BaseSalary"]; + this.Y1Bonus = source["Y1Bonus"]; + this.Y2BaseSalary = source["Y2BaseSalary"]; + this.Y2Bonus = source["Y2Bonus"]; + this.Y3BaseSalary = source["Y3BaseSalary"]; + this.Y3Bonus = source["Y3Bonus"]; + this.Y4BaseSalary = source["Y4BaseSalary"]; + this.Y4Bonus = source["Y4Bonus"]; + this.Y5BaseSalary = source["Y5BaseSalary"]; + this.Y5Bonus = source["Y5Bonus"]; + this.BonusPercentage = source["BonusPercentage"]; + this.ContractType = source["ContractType"]; + this.ContractValue = source["ContractValue"]; + this.SigningValue = source["SigningValue"]; + this.IsActive = source["IsActive"]; + this.IsComplete = source["IsComplete"]; + this.IsExtended = source["IsExtended"]; + this.HasProgressed = source["HasProgressed"]; + this.PlayerRetired = source["PlayerRetired"]; + this.TagType = source["TagType"]; + this.IsTagged = source["IsTagged"]; + this.IsCut = source["IsCut"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLCapsheet { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLTeamID: number; + Y1Bonus: number; + Y1Salary: number; + Y1CapHit: number; + Y2Bonus: number; + Y2Salary: number; + Y2CapHit: number; + Y3Bonus: number; + Y3Salary: number; + Y3CapHit: number; + Y4Bonus: number; + Y4Salary: number; + Y4CapHit: number; + Y5Bonus: number; + Y5Salary: number; + Y5CapHit: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLTeamID = source["NFLTeamID"]; + this.Y1Bonus = source["Y1Bonus"]; + this.Y1Salary = source["Y1Salary"]; + this.Y1CapHit = source["Y1CapHit"]; + this.Y2Bonus = source["Y2Bonus"]; + this.Y2Salary = source["Y2Salary"]; + this.Y2CapHit = source["Y2CapHit"]; + this.Y3Bonus = source["Y3Bonus"]; + this.Y3Salary = source["Y3Salary"]; + this.Y3CapHit = source["Y3CapHit"]; + this.Y4Bonus = source["Y4Bonus"]; + this.Y4Salary = source["Y4Salary"]; + this.Y4CapHit = source["Y4CapHit"]; + this.Y5Bonus = source["Y5Bonus"]; + this.Y5Salary = source["Y5Salary"]; + this.Y5CapHit = source["Y5CapHit"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTeam { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamName: string; + Mascot: string; + TeamAbbr: string; + Coach: string; + City: string; + State: string; + Country: string; + StadiumID: number; + Stadium: string; + StadiumCapacity: number; + RecordAttendance: number; + Enrollment: number; + FirstPlayed: number; + ColorOne: string; + ColorTwo: string; + ColorThree: string; + DiscordID: string; + OverallGrade: string; + OffenseGrade: string; + DefenseGrade: string; + SpecialTeamsGrade: string; + PenaltyMarks: number; + JerseyType: number; + ConferenceID: number; + Conference: string; + DivisionID: number; + Division: string; + NFLOwnerID: number; + NFLOwnerName: string; + NFLCoachID: number; + NFLCoachName: string; + NFLGMID: number; + NFLGMName: string; + NFLAssistantID: number; + NFLAssistantName: string; + WaiverOrder: number; + UsedTagThisSeason: boolean; + Capsheet: NFLCapsheet; + Contracts: NFLContract[]; + DraftPicks: NFLDraftPick[]; + TeamStats: NFLTeamStats[]; + TeamSeasonStats: NFLTeamSeasonStats[]; + TeamDepthChart: NFLDepthChart; + TeamGameplan: NFLGameplan; + Standings: NFLStandings[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamName = source["TeamName"]; + this.Mascot = source["Mascot"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Coach = source["Coach"]; + this.City = source["City"]; + this.State = source["State"]; + this.Country = source["Country"]; + this.StadiumID = source["StadiumID"]; + this.Stadium = source["Stadium"]; + this.StadiumCapacity = source["StadiumCapacity"]; + this.RecordAttendance = source["RecordAttendance"]; + this.Enrollment = source["Enrollment"]; + this.FirstPlayed = source["FirstPlayed"]; + this.ColorOne = source["ColorOne"]; + this.ColorTwo = source["ColorTwo"]; + this.ColorThree = source["ColorThree"]; + this.DiscordID = source["DiscordID"]; + this.OverallGrade = source["OverallGrade"]; + this.OffenseGrade = source["OffenseGrade"]; + this.DefenseGrade = source["DefenseGrade"]; + this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; + this.PenaltyMarks = source["PenaltyMarks"]; + this.JerseyType = source["JerseyType"]; + this.ConferenceID = source["ConferenceID"]; + this.Conference = source["Conference"]; + this.DivisionID = source["DivisionID"]; + this.Division = source["Division"]; + this.NFLOwnerID = source["NFLOwnerID"]; + this.NFLOwnerName = source["NFLOwnerName"]; + this.NFLCoachID = source["NFLCoachID"]; + this.NFLCoachName = source["NFLCoachName"]; + this.NFLGMID = source["NFLGMID"]; + this.NFLGMName = source["NFLGMName"]; + this.NFLAssistantID = source["NFLAssistantID"]; + this.NFLAssistantName = source["NFLAssistantName"]; + this.WaiverOrder = source["WaiverOrder"]; + this.UsedTagThisSeason = source["UsedTagThisSeason"]; + this.Capsheet = this.convertValues(source["Capsheet"], NFLCapsheet); + this.Contracts = this.convertValues(source["Contracts"], NFLContract); + this.DraftPicks = this.convertValues(source["DraftPicks"], NFLDraftPick); + this.TeamStats = this.convertValues(source["TeamStats"], NFLTeamStats); + this.TeamSeasonStats = this.convertValues(source["TeamSeasonStats"], NFLTeamSeasonStats); + this.TeamDepthChart = this.convertValues(source["TeamDepthChart"], NFLDepthChart); + this.TeamGameplan = this.convertValues(source["TeamGameplan"], NFLGameplan); + this.Standings = this.convertValues(source["Standings"], NFLStandings); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class Notification { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: DeletedAt; + TeamID: number; + League: string; + NotificationType: string; + Message: string; + Subject: string; + IsRead: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], DeletedAt); + this.TeamID = source["TeamID"]; + this.League = source["League"]; + this.NotificationType = source["NotificationType"]; + this.Message = source["Message"]; + this.Subject = source["Subject"]; + this.IsRead = source["IsRead"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeStandings { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + TeamName: string; + SeasonID: number; + Season: number; + LeagueID: number; + LeagueName: string; + ConferenceID: number; + ConferenceName: string; + DivisionID: number; + PostSeasonStatus: string; + IsFBS: boolean; + Rank: number; + TotalWins: number; + TotalLosses: number; + ConferenceWins: number; + ConferenceLosses: number; + RankedWins: number; + RankedLosses: number; + PointsFor: number; + PointsAgainst: number; + Streak: number; + HomeWins: number; + AwayWins: number; + Coach: string; + TeamAbbr: string; + TotalWinPercentage: number; + ConfWinPercentage: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.TeamName = source["TeamName"]; + this.SeasonID = source["SeasonID"]; + this.Season = source["Season"]; + this.LeagueID = source["LeagueID"]; + this.LeagueName = source["LeagueName"]; + this.ConferenceID = source["ConferenceID"]; + this.ConferenceName = source["ConferenceName"]; + this.DivisionID = source["DivisionID"]; + this.PostSeasonStatus = source["PostSeasonStatus"]; + this.IsFBS = source["IsFBS"]; + this.Rank = source["Rank"]; + this.TotalWins = source["TotalWins"]; + this.TotalLosses = source["TotalLosses"]; + this.ConferenceWins = source["ConferenceWins"]; + this.ConferenceLosses = source["ConferenceLosses"]; + this.RankedWins = source["RankedWins"]; + this.RankedLosses = source["RankedLosses"]; + this.PointsFor = source["PointsFor"]; + this.PointsAgainst = source["PointsAgainst"]; + this.Streak = source["Streak"]; + this.HomeWins = source["HomeWins"]; + this.AwayWins = source["AwayWins"]; + this.Coach = source["Coach"]; + this.TeamAbbr = source["TeamAbbr"]; + this.TotalWinPercentage = source["TotalWinPercentage"]; + this.ConfWinPercentage = source["ConfWinPercentage"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePromise { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + CollegePlayerID: number; + PromiseType: string; + PromiseWeight: string; + Benchmark: number; + BenchmarkStr: string; + PromiseMade: boolean; + IsFullfilled: boolean; + IsActive: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.CollegePlayerID = source["CollegePlayerID"]; + this.PromiseType = source["PromiseType"]; + this.PromiseWeight = source["PromiseWeight"]; + this.Benchmark = source["Benchmark"]; + this.BenchmarkStr = source["BenchmarkStr"]; + this.PromiseMade = source["PromiseMade"]; + this.IsFullfilled = source["IsFullfilled"]; + this.IsActive = source["IsActive"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NullInt64 { + Int64: number; + Valid: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Int64 = source["Int64"]; + this.Valid = source["Valid"]; + } +} +export class TransferPortalProfile { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + SeasonID: number; + CollegePlayerID: number; + ProfileID: number; + PromiseID: NullInt64; + TeamAbbreviation: string; + TotalPoints: number; + CurrentWeeksPoints: number; + PreviouslySpentPoints: number; + SpendingCount: number; + RemovedFromBoard: boolean; + RolledOnPromise: boolean; + LockProfile: boolean; + IsSigned: boolean; + Recruiter: string; + CollegePlayer: CollegePlayer; + Promise: CollegePromise; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.SeasonID = source["SeasonID"]; + this.CollegePlayerID = source["CollegePlayerID"]; + this.ProfileID = source["ProfileID"]; + this.PromiseID = this.convertValues(source["PromiseID"], NullInt64); + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.TotalPoints = source["TotalPoints"]; + this.CurrentWeeksPoints = source["CurrentWeeksPoints"]; + this.PreviouslySpentPoints = source["PreviouslySpentPoints"]; + this.SpendingCount = source["SpendingCount"]; + this.RemovedFromBoard = source["RemovedFromBoard"]; + this.RolledOnPromise = source["RolledOnPromise"]; + this.LockProfile = source["LockProfile"]; + this.IsSigned = source["IsSigned"]; + this.Recruiter = source["Recruiter"]; + this.CollegePlayer = this.convertValues(source["CollegePlayer"], CollegePlayer); + this.Promise = this.convertValues(source["Promise"], CollegePromise); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePlayerSeasonStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + CollegePlayerID: number; + SeasonID: number; + Year: number; + IsRedshirt: boolean; + PassingYards: number; + PassAttempts: number; + PassCompletions: number; + PassingTDs: number; + Interceptions: number; + LongestPass: number; + Sacks: number; + RushAttempts: number; + RushingYards: number; + RushingTDs: number; + Fumbles: number; + LongestRush: number; + Targets: number; + Catches: number; + ReceivingYards: number; + ReceivingTDs: number; + LongestReception: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + SacksMade: number; + ForcedFumbles: number; + RecoveredFumbles: number; + PassDeflections: number; + InterceptionsCaught: number; + Safeties: number; + DefensiveTDs: number; + FGMade: number; + FGAttempts: number; + LongestFG: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + KickoffTouchbacks: number; + Punts: number; + GrossPuntDistance: number; + NetPuntDistance: number; + PuntTouchbacks: number; + PuntsInside20: number; + KickReturns: number; + KickReturnTDs: number; + KickReturnYards: number; + PuntReturns: number; + PuntReturnTDs: number; + PuntReturnYards: number; + STSoloTackles: number; + STAssistedTackles: number; + PuntsBlocked: number; + FGBlocked: number; + Snaps: number; + Pancakes: number; + SacksAllowed: number; + PlayedGame: number; + StartedGame: number; + WasInjured: boolean; + WeeksOfRecovery: number; + InjuryType: string; + RevealResults: boolean; + TeamID: number; + Team: string; + PreviousTeamID: number; + PreviousTeam: string; + GameType: number; + GamesPlayed: number; + QBRating: number; + Tackles: number; + RushingAvg: number; + PassingAvg: number; + ReceivingAvg: number; + Completion: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.CollegePlayerID = source["CollegePlayerID"]; + this.SeasonID = source["SeasonID"]; + this.Year = source["Year"]; + this.IsRedshirt = source["IsRedshirt"]; + this.PassingYards = source["PassingYards"]; + this.PassAttempts = source["PassAttempts"]; + this.PassCompletions = source["PassCompletions"]; + this.PassingTDs = source["PassingTDs"]; + this.Interceptions = source["Interceptions"]; + this.LongestPass = source["LongestPass"]; + this.Sacks = source["Sacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingTDs = source["RushingTDs"]; + this.Fumbles = source["Fumbles"]; + this.LongestRush = source["LongestRush"]; + this.Targets = source["Targets"]; + this.Catches = source["Catches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.ReceivingTDs = source["ReceivingTDs"]; + this.LongestReception = source["LongestReception"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.SacksMade = source["SacksMade"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.RecoveredFumbles = source["RecoveredFumbles"]; + this.PassDeflections = source["PassDeflections"]; + this.InterceptionsCaught = source["InterceptionsCaught"]; + this.Safeties = source["Safeties"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.FGMade = source["FGMade"]; + this.FGAttempts = source["FGAttempts"]; + this.LongestFG = source["LongestFG"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.KickoffTouchbacks = source["KickoffTouchbacks"]; + this.Punts = source["Punts"]; + this.GrossPuntDistance = source["GrossPuntDistance"]; + this.NetPuntDistance = source["NetPuntDistance"]; + this.PuntTouchbacks = source["PuntTouchbacks"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.KickReturns = source["KickReturns"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.KickReturnYards = source["KickReturnYards"]; + this.PuntReturns = source["PuntReturns"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.STSoloTackles = source["STSoloTackles"]; + this.STAssistedTackles = source["STAssistedTackles"]; + this.PuntsBlocked = source["PuntsBlocked"]; + this.FGBlocked = source["FGBlocked"]; + this.Snaps = source["Snaps"]; + this.Pancakes = source["Pancakes"]; + this.SacksAllowed = source["SacksAllowed"]; + this.PlayedGame = source["PlayedGame"]; + this.StartedGame = source["StartedGame"]; + this.WasInjured = source["WasInjured"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryType = source["InjuryType"]; + this.RevealResults = source["RevealResults"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.GameType = source["GameType"]; + this.GamesPlayed = source["GamesPlayed"]; + this.QBRating = source["QBRating"]; + this.Tackles = source["Tackles"]; + this.RushingAvg = source["RushingAvg"]; + this.PassingAvg = source["PassingAvg"]; + this.ReceivingAvg = source["ReceivingAvg"]; + this.Completion = source["Completion"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePlayerStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + CollegePlayerID: number; + GameID: number; + WeekID: number; + SeasonID: number; + OpposingTeam: string; + Year: number; + IsRedshirt: boolean; + PassingYards: number; + PassAttempts: number; + PassCompletions: number; + PassingTDs: number; + Interceptions: number; + LongestPass: number; + Sacks: number; + RushAttempts: number; + RushingYards: number; + RushingTDs: number; + Fumbles: number; + LongestRush: number; + Targets: number; + Catches: number; + ReceivingYards: number; + ReceivingTDs: number; + LongestReception: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + SacksMade: number; + ForcedFumbles: number; + RecoveredFumbles: number; + PassDeflections: number; + InterceptionsCaught: number; + Safeties: number; + DefensiveTDs: number; + FGMade: number; + FGAttempts: number; + LongestFG: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + KickoffTouchbacks: number; + Punts: number; + GrossPuntDistance: number; + NetPuntDistance: number; + PuntTouchbacks: number; + PuntsInside20: number; + KickReturns: number; + KickReturnTDs: number; + KickReturnYards: number; + PuntReturns: number; + PuntReturnTDs: number; + PuntReturnYards: number; + STSoloTackles: number; + STAssistedTackles: number; + PuntsBlocked: number; + FGBlocked: number; + Snaps: number; + Pancakes: number; + SacksAllowed: number; + PlayedGame: number; + StartedGame: number; + WasInjured: boolean; + WeeksOfRecovery: number; + InjuryType: string; + RevealResults: boolean; + TeamID: number; + Team: string; + PreviousTeamID: number; + PreviousTeam: string; + GameType: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.CollegePlayerID = source["CollegePlayerID"]; + this.GameID = source["GameID"]; + this.WeekID = source["WeekID"]; + this.SeasonID = source["SeasonID"]; + this.OpposingTeam = source["OpposingTeam"]; + this.Year = source["Year"]; + this.IsRedshirt = source["IsRedshirt"]; + this.PassingYards = source["PassingYards"]; + this.PassAttempts = source["PassAttempts"]; + this.PassCompletions = source["PassCompletions"]; + this.PassingTDs = source["PassingTDs"]; + this.Interceptions = source["Interceptions"]; + this.LongestPass = source["LongestPass"]; + this.Sacks = source["Sacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingTDs = source["RushingTDs"]; + this.Fumbles = source["Fumbles"]; + this.LongestRush = source["LongestRush"]; + this.Targets = source["Targets"]; + this.Catches = source["Catches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.ReceivingTDs = source["ReceivingTDs"]; + this.LongestReception = source["LongestReception"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.SacksMade = source["SacksMade"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.RecoveredFumbles = source["RecoveredFumbles"]; + this.PassDeflections = source["PassDeflections"]; + this.InterceptionsCaught = source["InterceptionsCaught"]; + this.Safeties = source["Safeties"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.FGMade = source["FGMade"]; + this.FGAttempts = source["FGAttempts"]; + this.LongestFG = source["LongestFG"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.KickoffTouchbacks = source["KickoffTouchbacks"]; + this.Punts = source["Punts"]; + this.GrossPuntDistance = source["GrossPuntDistance"]; + this.NetPuntDistance = source["NetPuntDistance"]; + this.PuntTouchbacks = source["PuntTouchbacks"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.KickReturns = source["KickReturns"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.KickReturnYards = source["KickReturnYards"]; + this.PuntReturns = source["PuntReturns"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.STSoloTackles = source["STSoloTackles"]; + this.STAssistedTackles = source["STAssistedTackles"]; + this.PuntsBlocked = source["PuntsBlocked"]; + this.FGBlocked = source["FGBlocked"]; + this.Snaps = source["Snaps"]; + this.Pancakes = source["Pancakes"]; + this.SacksAllowed = source["SacksAllowed"]; + this.PlayedGame = source["PlayedGame"]; + this.StartedGame = source["StartedGame"]; + this.WasInjured = source["WasInjured"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryType = source["InjuryType"]; + this.RevealResults = source["RevealResults"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.GameType = source["GameType"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePlayer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; + TeamID: number; + TeamAbbr: string; + HighSchool: string; + City: string; + State: string; + Year: number; + IsRedshirt: boolean; + IsRedshirting: boolean; + HasGraduated: boolean; + TransferStatus: number; + TransferLikeliness: string; + Stats: CollegePlayerStats[]; + SeasonStats: CollegePlayerSeasonStats; + HasProgressed: boolean; + WillDeclare: boolean; + LegacyID: number; + Profiles: TransferPortalProfile[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.Year = source["Year"]; + this.IsRedshirt = source["IsRedshirt"]; + this.IsRedshirting = source["IsRedshirting"]; + this.HasGraduated = source["HasGraduated"]; + this.TransferStatus = source["TransferStatus"]; + this.TransferLikeliness = source["TransferLikeliness"]; + this.Stats = this.convertValues(source["Stats"], CollegePlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], CollegePlayerSeasonStats); + this.HasProgressed = source["HasProgressed"]; + this.WillDeclare = source["WillDeclare"]; + this.LegacyID = source["LegacyID"]; + this.Profiles = this.convertValues(source["Profiles"], TransferPortalProfile); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeDepthChartPosition { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + DepthChartID: number; + PlayerID: number; + Position: string; + PositionLevel: string; + FirstName: string; + LastName: string; + OriginalPosition: string; + CollegePlayer: CollegePlayer; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.DepthChartID = source["DepthChartID"]; + this.PlayerID = source["PlayerID"]; + this.Position = source["Position"]; + this.PositionLevel = source["PositionLevel"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.OriginalPosition = source["OriginalPosition"]; + this.CollegePlayer = this.convertValues(source["CollegePlayer"], CollegePlayer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeTeamDepthChart { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + DepthChartPlayers: CollegeDepthChartPosition[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.DepthChartPlayers = this.convertValues(source["DepthChartPlayers"], CollegeDepthChartPosition); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeGameplan { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + OffensiveScheme: string; + OffRunToPassRatio: number; + OffFormation1Name: string; + OffForm1Weight: number; + OffForm1TraditionalRun: number; + OffForm1OptionRun: number; + OffForm1Pass: number; + OffForm1RPO: number; + OffFormation2Name: string; + OffForm2Weight: number; + OffForm2TraditionalRun: number; + OffForm2OptionRun: number; + OffForm2Pass: number; + OffForm2RPO: number; + OffFormation3Name: string; + OffForm3Weight: number; + OffForm3TraditionalRun: number; + OffForm3OptionRun: number; + OffForm3Pass: number; + OffForm3RPO: number; + OffFormation4Name: string; + OffForm4Weight: number; + OffForm4TraditionalRun: number; + OffForm4OptionRun: number; + OffForm4Pass: number; + OffForm4RPO: number; + OffFormation5Name: string; + OffForm5Weight: number; + OffForm5TraditionalRun: number; + OffForm5OptionRun: number; + OffForm5Pass: number; + OffForm5RPO: number; + RunnerDistributionQB: number; + RunnerDistributionRB1: number; + RunnerDistributionRB2: number; + RunnerDistributionRB3: number; + RunnerDistributionFB1: number; + RunnerDistributionFB2: number; + RunnerDistributionWR: number; + RunnerDistributionWRPosition: string; + RunnerDistributionWRID: number; + RunOutsideLeft: number; + RunOutsideRight: number; + RunInsideLeft: number; + RunInsideRight: number; + RunPowerLeft: number; + RunPowerRight: number; + RunDrawLeft: number; + RunDrawRight: number; + ReadOptionLeft: number; + ReadOptionRight: number; + SpeedOptionLeft: number; + SpeedOptionRight: number; + InvertedOptionLeft: number; + InvertedOptionRight: number; + TripleOptionLeft: number; + TripleOptionRight: number; + PassQuick: number; + PassShort: number; + PassLong: number; + PassDeep: number; + PassScreen: number; + PassPAShort: number; + PassPALong: number; + PassPADeep: number; + LeftVsRight: number; + ChoiceOutside: number; + ChoiceInside: number; + ChoicePower: number; + PeekOutside: number; + PeekInside: number; + PeekPower: number; + TargetingWR1: number; + TargetDepthWR1: string; + TargetingWR2: number; + TargetDepthWR2: string; + TargetingWR3: number; + TargetDepthWR3: string; + TargetingWR4: number; + TargetDepthWR4: string; + TargetingWR5: number; + TargetDepthWR5: string; + TargetingTE1: number; + TargetDepthTE1: string; + TargetingTE2: number; + TargetDepthTE2: string; + TargetingTE3: number; + TargetDepthTE3: string; + TargetingRB1: number; + TargetDepthRB1: string; + TargetingRB2: number; + TargetDepthRB2: string; + TargetingFB1: number; + TargetDepthFB1: string; + DefensiveScheme: string; + DefFormation1: string; + DefFormation1RunToPass: number; + DefFormation1BlitzWeight: number; + DefFormation1BlitzAggression: string; + DefFormation2: string; + DefFormation2RunToPass: number; + DefFormation2BlitzWeight: number; + DefFormation2BlitzAggression: string; + DefFormation3: string; + DefFormation3RunToPass: number; + DefFormation3BlitzWeight: number; + DefFormation3BlitzAggression: string; + DefFormation4: string; + DefFormation4RunToPass: number; + DefFormation4BlitzWeight: number; + DefFormation4BlitzAggression: string; + DefFormation5: string; + DefFormation5RunToPass: number; + DefFormation5BlitzWeight: number; + DefFormation5BlitzAggression: string; + BlitzSafeties: boolean; + BlitzCorners: boolean; + LinebackerCoverage: string; + CornersCoverage: string; + SafetiesCoverage: string; + DiveFocus: number; + PitchFocus: number; + PrimaryHB: number; + MaximumFGDistance: number; + GoFor4AndShort: number; + GoFor4AndLong: number; + HasSchemePenalty: boolean; + OffenseSchemePenalty: number; + DefenseSchemePenalty: number; + DefaultOffense: boolean; + DefaultDefense: boolean; + PreviousWeekBye: boolean; + FocusPlays: string; + DoubleTeam: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.OffRunToPassRatio = source["OffRunToPassRatio"]; + this.OffFormation1Name = source["OffFormation1Name"]; + this.OffForm1Weight = source["OffForm1Weight"]; + this.OffForm1TraditionalRun = source["OffForm1TraditionalRun"]; + this.OffForm1OptionRun = source["OffForm1OptionRun"]; + this.OffForm1Pass = source["OffForm1Pass"]; + this.OffForm1RPO = source["OffForm1RPO"]; + this.OffFormation2Name = source["OffFormation2Name"]; + this.OffForm2Weight = source["OffForm2Weight"]; + this.OffForm2TraditionalRun = source["OffForm2TraditionalRun"]; + this.OffForm2OptionRun = source["OffForm2OptionRun"]; + this.OffForm2Pass = source["OffForm2Pass"]; + this.OffForm2RPO = source["OffForm2RPO"]; + this.OffFormation3Name = source["OffFormation3Name"]; + this.OffForm3Weight = source["OffForm3Weight"]; + this.OffForm3TraditionalRun = source["OffForm3TraditionalRun"]; + this.OffForm3OptionRun = source["OffForm3OptionRun"]; + this.OffForm3Pass = source["OffForm3Pass"]; + this.OffForm3RPO = source["OffForm3RPO"]; + this.OffFormation4Name = source["OffFormation4Name"]; + this.OffForm4Weight = source["OffForm4Weight"]; + this.OffForm4TraditionalRun = source["OffForm4TraditionalRun"]; + this.OffForm4OptionRun = source["OffForm4OptionRun"]; + this.OffForm4Pass = source["OffForm4Pass"]; + this.OffForm4RPO = source["OffForm4RPO"]; + this.OffFormation5Name = source["OffFormation5Name"]; + this.OffForm5Weight = source["OffForm5Weight"]; + this.OffForm5TraditionalRun = source["OffForm5TraditionalRun"]; + this.OffForm5OptionRun = source["OffForm5OptionRun"]; + this.OffForm5Pass = source["OffForm5Pass"]; + this.OffForm5RPO = source["OffForm5RPO"]; + this.RunnerDistributionQB = source["RunnerDistributionQB"]; + this.RunnerDistributionRB1 = source["RunnerDistributionRB1"]; + this.RunnerDistributionRB2 = source["RunnerDistributionRB2"]; + this.RunnerDistributionRB3 = source["RunnerDistributionRB3"]; + this.RunnerDistributionFB1 = source["RunnerDistributionFB1"]; + this.RunnerDistributionFB2 = source["RunnerDistributionFB2"]; + this.RunnerDistributionWR = source["RunnerDistributionWR"]; + this.RunnerDistributionWRPosition = source["RunnerDistributionWRPosition"]; + this.RunnerDistributionWRID = source["RunnerDistributionWRID"]; + this.RunOutsideLeft = source["RunOutsideLeft"]; + this.RunOutsideRight = source["RunOutsideRight"]; + this.RunInsideLeft = source["RunInsideLeft"]; + this.RunInsideRight = source["RunInsideRight"]; + this.RunPowerLeft = source["RunPowerLeft"]; + this.RunPowerRight = source["RunPowerRight"]; + this.RunDrawLeft = source["RunDrawLeft"]; + this.RunDrawRight = source["RunDrawRight"]; + this.ReadOptionLeft = source["ReadOptionLeft"]; + this.ReadOptionRight = source["ReadOptionRight"]; + this.SpeedOptionLeft = source["SpeedOptionLeft"]; + this.SpeedOptionRight = source["SpeedOptionRight"]; + this.InvertedOptionLeft = source["InvertedOptionLeft"]; + this.InvertedOptionRight = source["InvertedOptionRight"]; + this.TripleOptionLeft = source["TripleOptionLeft"]; + this.TripleOptionRight = source["TripleOptionRight"]; + this.PassQuick = source["PassQuick"]; + this.PassShort = source["PassShort"]; + this.PassLong = source["PassLong"]; + this.PassDeep = source["PassDeep"]; + this.PassScreen = source["PassScreen"]; + this.PassPAShort = source["PassPAShort"]; + this.PassPALong = source["PassPALong"]; + this.PassPADeep = source["PassPADeep"]; + this.LeftVsRight = source["LeftVsRight"]; + this.ChoiceOutside = source["ChoiceOutside"]; + this.ChoiceInside = source["ChoiceInside"]; + this.ChoicePower = source["ChoicePower"]; + this.PeekOutside = source["PeekOutside"]; + this.PeekInside = source["PeekInside"]; + this.PeekPower = source["PeekPower"]; + this.TargetingWR1 = source["TargetingWR1"]; + this.TargetDepthWR1 = source["TargetDepthWR1"]; + this.TargetingWR2 = source["TargetingWR2"]; + this.TargetDepthWR2 = source["TargetDepthWR2"]; + this.TargetingWR3 = source["TargetingWR3"]; + this.TargetDepthWR3 = source["TargetDepthWR3"]; + this.TargetingWR4 = source["TargetingWR4"]; + this.TargetDepthWR4 = source["TargetDepthWR4"]; + this.TargetingWR5 = source["TargetingWR5"]; + this.TargetDepthWR5 = source["TargetDepthWR5"]; + this.TargetingTE1 = source["TargetingTE1"]; + this.TargetDepthTE1 = source["TargetDepthTE1"]; + this.TargetingTE2 = source["TargetingTE2"]; + this.TargetDepthTE2 = source["TargetDepthTE2"]; + this.TargetingTE3 = source["TargetingTE3"]; + this.TargetDepthTE3 = source["TargetDepthTE3"]; + this.TargetingRB1 = source["TargetingRB1"]; + this.TargetDepthRB1 = source["TargetDepthRB1"]; + this.TargetingRB2 = source["TargetingRB2"]; + this.TargetDepthRB2 = source["TargetDepthRB2"]; + this.TargetingFB1 = source["TargetingFB1"]; + this.TargetDepthFB1 = source["TargetDepthFB1"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.DefFormation1 = source["DefFormation1"]; + this.DefFormation1RunToPass = source["DefFormation1RunToPass"]; + this.DefFormation1BlitzWeight = source["DefFormation1BlitzWeight"]; + this.DefFormation1BlitzAggression = source["DefFormation1BlitzAggression"]; + this.DefFormation2 = source["DefFormation2"]; + this.DefFormation2RunToPass = source["DefFormation2RunToPass"]; + this.DefFormation2BlitzWeight = source["DefFormation2BlitzWeight"]; + this.DefFormation2BlitzAggression = source["DefFormation2BlitzAggression"]; + this.DefFormation3 = source["DefFormation3"]; + this.DefFormation3RunToPass = source["DefFormation3RunToPass"]; + this.DefFormation3BlitzWeight = source["DefFormation3BlitzWeight"]; + this.DefFormation3BlitzAggression = source["DefFormation3BlitzAggression"]; + this.DefFormation4 = source["DefFormation4"]; + this.DefFormation4RunToPass = source["DefFormation4RunToPass"]; + this.DefFormation4BlitzWeight = source["DefFormation4BlitzWeight"]; + this.DefFormation4BlitzAggression = source["DefFormation4BlitzAggression"]; + this.DefFormation5 = source["DefFormation5"]; + this.DefFormation5RunToPass = source["DefFormation5RunToPass"]; + this.DefFormation5BlitzWeight = source["DefFormation5BlitzWeight"]; + this.DefFormation5BlitzAggression = source["DefFormation5BlitzAggression"]; + this.BlitzSafeties = source["BlitzSafeties"]; + this.BlitzCorners = source["BlitzCorners"]; + this.LinebackerCoverage = source["LinebackerCoverage"]; + this.CornersCoverage = source["CornersCoverage"]; + this.SafetiesCoverage = source["SafetiesCoverage"]; + this.DiveFocus = source["DiveFocus"]; + this.PitchFocus = source["PitchFocus"]; + this.PrimaryHB = source["PrimaryHB"]; + this.MaximumFGDistance = source["MaximumFGDistance"]; + this.GoFor4AndShort = source["GoFor4AndShort"]; + this.GoFor4AndLong = source["GoFor4AndLong"]; + this.HasSchemePenalty = source["HasSchemePenalty"]; + this.OffenseSchemePenalty = source["OffenseSchemePenalty"]; + this.DefenseSchemePenalty = source["DefenseSchemePenalty"]; + this.DefaultOffense = source["DefaultOffense"]; + this.DefaultDefense = source["DefaultDefense"]; + this.PreviousWeekBye = source["PreviousWeekBye"]; + this.FocusPlays = source["FocusPlays"]; + this.DoubleTeam = source["DoubleTeam"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeTeamRecords { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + PassingTDCareerHolderID: number; + PassingTDCareerHolder: string; + PassingTDCareerRecord: number; + PassingTDGameHolderID: number; + PassingTDGameHolder: string; + PassingTDGameRecord: number; + PassingTDSeasonHolderID: number; + PassingTDSeasonHolder: string; + PassingTDSeasonRecord: number; + PassingYardsCareerHolderID: number; + PassingYardsCareerHolder: string; + PassingYardsCareerRecord: number; + PassingYardsGameHolderID: number; + PassingYardsGameHolder: string; + PassingYardsGameRecord: number; + PassingYardsSeasonHolderID: number; + PassingYardsSeasonHolder: string; + PassingYardsSeasonRecord: number; + RushingTDCareerHolderID: number; + RushingTDCareerHolder: string; + RushingTDCareerRecord: number; + RushingTDGameHolderID: number; + RushingTDGameHolder: string; + RushingTDGameRecord: number; + RushingTDSeasonHolderID: number; + RushingTDSeasonHolder: string; + RushingTDSeasonRecord: number; + RushingYardsCareerHolderID: number; + RushingYardsCareerHolder: string; + RushingYardsCareerRecord: number; + RushingYardsGameHolderID: number; + RushingYardsGameHolder: string; + RushingYardsGameRecord: number; + RushingYardsSeasonHolderID: number; + RushingYardsSeasonHolder: string; + RushingYardsSeasonRecord: number; + ReceivingTDCareerHolderID: number; + ReceivingTDCareerHolder: string; + ReceivingTDCareerRecord: number; + ReceivingTDGameHolderID: number; + ReceivingTDGameHolder: string; + ReceivingTDGameRecord: number; + ReceivingTDSeasonHolderID: number; + ReceivingTDSeasonHolder: string; + ReceivingTDSeasonRecord: number; + ReceivingYardsCareerHolderID: number; + ReceivingYardsCareerHolder: string; + ReceivingYardsCareerRecord: number; + ReceivingYardsGameHolderID: number; + ReceivingYardsGameHolder: string; + ReceivingYardsGameRecord: number; + ReceivingYardsSeasonHolderID: number; + ReceivingYardsSeasonHolder: string; + ReceivingYardsSeasonRecord: number; + ReceptionsCareerHolderID: number; + ReceptionsCareerHolder: string; + ReceptionsCareerRecord: number; + ReceptionsGameHolderID: number; + ReceptionsGameHolder: string; + ReceptionsGameRecord: number; + ReceptionsSeasonHolderID: number; + ReceptionsSeasonHolder: string; + ReceptionsSeasonRecord: number; + InterceptionsCareerHolderID: number; + InterceptionsCareerHolder: string; + InterceptionsCareerRecord: number; + InterceptionsGameHolderID: number; + InterceptionsGameHolder: string; + InterceptionsGameRecord: number; + InterceptionsSeasonHolderID: number; + InterceptionsSeasonHolder: string; + InterceptionsSeasonRecord: number; + SacksCareerHolderID: number; + SacksCareerHolder: string; + SacksCareerRecord: number; + SacksGameHolderID: number; + SacksGameHolder: string; + SacksGameRecord: number; + SacksSeasonHolderID: number; + SacksSeasonHolder: string; + SacksSeasonRecord: number; + TacklesCareerHolderID: number; + TacklesCareerHolder: string; + TacklesCareerRecord: number; + TacklesGameHolderID: number; + TacklesGameHolder: string; + TacklesGameRecord: number; + TacklesSeasonHolderID: number; + TacklesSeasonHolder: string; + TacklesSeasonRecord: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.PassingTDCareerHolderID = source["PassingTDCareerHolderID"]; + this.PassingTDCareerHolder = source["PassingTDCareerHolder"]; + this.PassingTDCareerRecord = source["PassingTDCareerRecord"]; + this.PassingTDGameHolderID = source["PassingTDGameHolderID"]; + this.PassingTDGameHolder = source["PassingTDGameHolder"]; + this.PassingTDGameRecord = source["PassingTDGameRecord"]; + this.PassingTDSeasonHolderID = source["PassingTDSeasonHolderID"]; + this.PassingTDSeasonHolder = source["PassingTDSeasonHolder"]; + this.PassingTDSeasonRecord = source["PassingTDSeasonRecord"]; + this.PassingYardsCareerHolderID = source["PassingYardsCareerHolderID"]; + this.PassingYardsCareerHolder = source["PassingYardsCareerHolder"]; + this.PassingYardsCareerRecord = source["PassingYardsCareerRecord"]; + this.PassingYardsGameHolderID = source["PassingYardsGameHolderID"]; + this.PassingYardsGameHolder = source["PassingYardsGameHolder"]; + this.PassingYardsGameRecord = source["PassingYardsGameRecord"]; + this.PassingYardsSeasonHolderID = source["PassingYardsSeasonHolderID"]; + this.PassingYardsSeasonHolder = source["PassingYardsSeasonHolder"]; + this.PassingYardsSeasonRecord = source["PassingYardsSeasonRecord"]; + this.RushingTDCareerHolderID = source["RushingTDCareerHolderID"]; + this.RushingTDCareerHolder = source["RushingTDCareerHolder"]; + this.RushingTDCareerRecord = source["RushingTDCareerRecord"]; + this.RushingTDGameHolderID = source["RushingTDGameHolderID"]; + this.RushingTDGameHolder = source["RushingTDGameHolder"]; + this.RushingTDGameRecord = source["RushingTDGameRecord"]; + this.RushingTDSeasonHolderID = source["RushingTDSeasonHolderID"]; + this.RushingTDSeasonHolder = source["RushingTDSeasonHolder"]; + this.RushingTDSeasonRecord = source["RushingTDSeasonRecord"]; + this.RushingYardsCareerHolderID = source["RushingYardsCareerHolderID"]; + this.RushingYardsCareerHolder = source["RushingYardsCareerHolder"]; + this.RushingYardsCareerRecord = source["RushingYardsCareerRecord"]; + this.RushingYardsGameHolderID = source["RushingYardsGameHolderID"]; + this.RushingYardsGameHolder = source["RushingYardsGameHolder"]; + this.RushingYardsGameRecord = source["RushingYardsGameRecord"]; + this.RushingYardsSeasonHolderID = source["RushingYardsSeasonHolderID"]; + this.RushingYardsSeasonHolder = source["RushingYardsSeasonHolder"]; + this.RushingYardsSeasonRecord = source["RushingYardsSeasonRecord"]; + this.ReceivingTDCareerHolderID = source["ReceivingTDCareerHolderID"]; + this.ReceivingTDCareerHolder = source["ReceivingTDCareerHolder"]; + this.ReceivingTDCareerRecord = source["ReceivingTDCareerRecord"]; + this.ReceivingTDGameHolderID = source["ReceivingTDGameHolderID"]; + this.ReceivingTDGameHolder = source["ReceivingTDGameHolder"]; + this.ReceivingTDGameRecord = source["ReceivingTDGameRecord"]; + this.ReceivingTDSeasonHolderID = source["ReceivingTDSeasonHolderID"]; + this.ReceivingTDSeasonHolder = source["ReceivingTDSeasonHolder"]; + this.ReceivingTDSeasonRecord = source["ReceivingTDSeasonRecord"]; + this.ReceivingYardsCareerHolderID = source["ReceivingYardsCareerHolderID"]; + this.ReceivingYardsCareerHolder = source["ReceivingYardsCareerHolder"]; + this.ReceivingYardsCareerRecord = source["ReceivingYardsCareerRecord"]; + this.ReceivingYardsGameHolderID = source["ReceivingYardsGameHolderID"]; + this.ReceivingYardsGameHolder = source["ReceivingYardsGameHolder"]; + this.ReceivingYardsGameRecord = source["ReceivingYardsGameRecord"]; + this.ReceivingYardsSeasonHolderID = source["ReceivingYardsSeasonHolderID"]; + this.ReceivingYardsSeasonHolder = source["ReceivingYardsSeasonHolder"]; + this.ReceivingYardsSeasonRecord = source["ReceivingYardsSeasonRecord"]; + this.ReceptionsCareerHolderID = source["ReceptionsCareerHolderID"]; + this.ReceptionsCareerHolder = source["ReceptionsCareerHolder"]; + this.ReceptionsCareerRecord = source["ReceptionsCareerRecord"]; + this.ReceptionsGameHolderID = source["ReceptionsGameHolderID"]; + this.ReceptionsGameHolder = source["ReceptionsGameHolder"]; + this.ReceptionsGameRecord = source["ReceptionsGameRecord"]; + this.ReceptionsSeasonHolderID = source["ReceptionsSeasonHolderID"]; + this.ReceptionsSeasonHolder = source["ReceptionsSeasonHolder"]; + this.ReceptionsSeasonRecord = source["ReceptionsSeasonRecord"]; + this.InterceptionsCareerHolderID = source["InterceptionsCareerHolderID"]; + this.InterceptionsCareerHolder = source["InterceptionsCareerHolder"]; + this.InterceptionsCareerRecord = source["InterceptionsCareerRecord"]; + this.InterceptionsGameHolderID = source["InterceptionsGameHolderID"]; + this.InterceptionsGameHolder = source["InterceptionsGameHolder"]; + this.InterceptionsGameRecord = source["InterceptionsGameRecord"]; + this.InterceptionsSeasonHolderID = source["InterceptionsSeasonHolderID"]; + this.InterceptionsSeasonHolder = source["InterceptionsSeasonHolder"]; + this.InterceptionsSeasonRecord = source["InterceptionsSeasonRecord"]; + this.SacksCareerHolderID = source["SacksCareerHolderID"]; + this.SacksCareerHolder = source["SacksCareerHolder"]; + this.SacksCareerRecord = source["SacksCareerRecord"]; + this.SacksGameHolderID = source["SacksGameHolderID"]; + this.SacksGameHolder = source["SacksGameHolder"]; + this.SacksGameRecord = source["SacksGameRecord"]; + this.SacksSeasonHolderID = source["SacksSeasonHolderID"]; + this.SacksSeasonHolder = source["SacksSeasonHolder"]; + this.SacksSeasonRecord = source["SacksSeasonRecord"]; + this.TacklesCareerHolderID = source["TacklesCareerHolderID"]; + this.TacklesCareerHolder = source["TacklesCareerHolder"]; + this.TacklesCareerRecord = source["TacklesCareerRecord"]; + this.TacklesGameHolderID = source["TacklesGameHolderID"]; + this.TacklesGameHolder = source["TacklesGameHolder"]; + this.TacklesGameRecord = source["TacklesGameRecord"]; + this.TacklesSeasonHolderID = source["TacklesSeasonHolderID"]; + this.TacklesSeasonHolder = source["TacklesSeasonHolder"]; + this.TacklesSeasonRecord = source["TacklesSeasonRecord"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class DeletedAt { + Time: Time; + Valid: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Time = this.convertValues(source["Time"], Time); + this.Valid = source["Valid"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeTeamSeasonStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: DeletedAt; + TeamID: number; + SeasonID: number; + Year: number; + PointsScored: number; + PointsAgainst: number; + TwoPointTries: number; + TwoPointSucceed: number; + PassingYards: number; + PassingAttempts: number; + PassingCompletions: number; + LongestPass: number; + PassingTouchdowns: number; + PassingInterceptions: number; + QBRating: number; + QBSacks: number; + RushAttempts: number; + RushingYards: number; + RushingYardsPerAttempt: number; + LongestRush: number; + RushingTouchdowns: number; + RushingFumbles: number; + ReceivingTargets: number; + ReceivingCatches: number; + ReceivingYards: number; + YardsPerCatch: number; + ReceivingTouchdowns: number; + ReceivingFumbles: number; + PassingYardsAllowed: number; + PassingTDsAllowed: number; + PassingCompletionsAllowed: number; + RushingYardsAllowed: number; + RushingTDsAllowed: number; + RushingYardsPerAttemptAllowed: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + DefensiveSacks: number; + ForcedFumbles: number; + FumblesRecovered: number; + DefensiveInterceptions: number; + TurnoverYards: number; + DefensiveTDs: number; + Safeties: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + ExtraPointPercentage: number; + FieldGoalsMade: number; + FieldGoalsAttempted: number; + FieldGoalsPercentage: number; + LongestFieldGoal: number; + KickoffTBs: number; + PuntTBs: number; + Punts: number; + PuntYards: number; + PuntsInside20: number; + PuntAverage: number; + Inside20YardLine: number; + KickReturnYards: number; + KickReturnTDs: number; + PuntReturnYards: number; + PuntReturnTDs: number; + OffensivePenalties: number; + DefensivePenalties: number; + OffPenaltyYards: number; + DefPenaltyYards: number; + Score1Q: number; + Score2Q: number; + Score3Q: number; + Score4Q: number; + Score5Q: number; + Score6Q: number; + Score7Q: number; + ScoreOT: number; + OffensiveScheme: string; + DefensiveScheme: string; + OffensiveSnaps: number; + DefensiveSnaps: number; + SpecialTeamSnaps: number; + GameType: number; + RevealResults: boolean; + GamesPlayed: number; + TotalOffensiveYards: number; + TotalYardsAllowed: number; + Fumbles: number; + QBRating: number; + Tackles: number; + Turnovers: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], DeletedAt); + this.TeamID = source["TeamID"]; + this.SeasonID = source["SeasonID"]; + this.Year = source["Year"]; + this.PointsScored = source["PointsScored"]; + this.PointsAgainst = source["PointsAgainst"]; + this.TwoPointTries = source["TwoPointTries"]; + this.TwoPointSucceed = source["TwoPointSucceed"]; + this.PassingYards = source["PassingYards"]; + this.PassingAttempts = source["PassingAttempts"]; + this.PassingCompletions = source["PassingCompletions"]; + this.LongestPass = source["LongestPass"]; + this.PassingTouchdowns = source["PassingTouchdowns"]; + this.PassingInterceptions = source["PassingInterceptions"]; + this.QBRating = source["QBRating"]; + this.QBSacks = source["QBSacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingYardsPerAttempt = source["RushingYardsPerAttempt"]; + this.LongestRush = source["LongestRush"]; + this.RushingTouchdowns = source["RushingTouchdowns"]; + this.RushingFumbles = source["RushingFumbles"]; + this.ReceivingTargets = source["ReceivingTargets"]; + this.ReceivingCatches = source["ReceivingCatches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.YardsPerCatch = source["YardsPerCatch"]; + this.ReceivingTouchdowns = source["ReceivingTouchdowns"]; + this.ReceivingFumbles = source["ReceivingFumbles"]; + this.PassingYardsAllowed = source["PassingYardsAllowed"]; + this.PassingTDsAllowed = source["PassingTDsAllowed"]; + this.PassingCompletionsAllowed = source["PassingCompletionsAllowed"]; + this.RushingYardsAllowed = source["RushingYardsAllowed"]; + this.RushingTDsAllowed = source["RushingTDsAllowed"]; + this.RushingYardsPerAttemptAllowed = source["RushingYardsPerAttemptAllowed"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.DefensiveSacks = source["DefensiveSacks"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.FumblesRecovered = source["FumblesRecovered"]; + this.DefensiveInterceptions = source["DefensiveInterceptions"]; + this.TurnoverYards = source["TurnoverYards"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.Safeties = source["Safeties"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.ExtraPointPercentage = source["ExtraPointPercentage"]; + this.FieldGoalsMade = source["FieldGoalsMade"]; + this.FieldGoalsAttempted = source["FieldGoalsAttempted"]; + this.FieldGoalsPercentage = source["FieldGoalsPercentage"]; + this.LongestFieldGoal = source["LongestFieldGoal"]; + this.KickoffTBs = source["KickoffTBs"]; + this.PuntTBs = source["PuntTBs"]; + this.Punts = source["Punts"]; + this.PuntYards = source["PuntYards"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.PuntAverage = source["PuntAverage"]; + this.Inside20YardLine = source["Inside20YardLine"]; + this.KickReturnYards = source["KickReturnYards"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.OffensivePenalties = source["OffensivePenalties"]; + this.DefensivePenalties = source["DefensivePenalties"]; + this.OffPenaltyYards = source["OffPenaltyYards"]; + this.DefPenaltyYards = source["DefPenaltyYards"]; + this.Score1Q = source["Score1Q"]; + this.Score2Q = source["Score2Q"]; + this.Score3Q = source["Score3Q"]; + this.Score4Q = source["Score4Q"]; + this.Score5Q = source["Score5Q"]; + this.Score6Q = source["Score6Q"]; + this.Score7Q = source["Score7Q"]; + this.ScoreOT = source["ScoreOT"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.OffensiveSnaps = source["OffensiveSnaps"]; + this.DefensiveSnaps = source["DefensiveSnaps"]; + this.SpecialTeamSnaps = source["SpecialTeamSnaps"]; + this.GameType = source["GameType"]; + this.RevealResults = source["RevealResults"]; + this.GamesPlayed = source["GamesPlayed"]; + this.TotalOffensiveYards = source["TotalOffensiveYards"]; + this.TotalYardsAllowed = source["TotalYardsAllowed"]; + this.Fumbles = source["Fumbles"]; + this.QBRating = source["QBRating"]; + this.Tackles = source["Tackles"]; + this.Turnovers = source["Turnovers"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeTeamStats { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + GameID: number; + WeekID: number; + SeasonID: number; + OpposingTeam: string; + PointsScored: number; + PointsAgainst: number; + TwoPointTries: number; + TwoPointSucceed: number; + PassingYards: number; + PassingAttempts: number; + PassingCompletions: number; + LongestPass: number; + PassingTouchdowns: number; + PassingInterceptions: number; + QBRating: number; + QBSacks: number; + RushAttempts: number; + RushingYards: number; + RushingYardsPerAttempt: number; + LongestRush: number; + RushingTouchdowns: number; + RushingFumbles: number; + ReceivingTargets: number; + ReceivingCatches: number; + ReceivingYards: number; + YardsPerCatch: number; + ReceivingTouchdowns: number; + ReceivingFumbles: number; + PassingYardsAllowed: number; + PassingTDsAllowed: number; + PassingCompletionsAllowed: number; + RushingYardsAllowed: number; + RushingTDsAllowed: number; + RushingYardsPerAttemptAllowed: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + DefensiveSacks: number; + ForcedFumbles: number; + FumblesRecovered: number; + DefensiveInterceptions: number; + TurnoverYards: number; + DefensiveTDs: number; + Safeties: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + ExtraPointPercentage: number; + FieldGoalsMade: number; + FieldGoalsAttempted: number; + FieldGoalsPercentage: number; + LongestFieldGoal: number; + KickoffTBs: number; + PuntTBs: number; + Punts: number; + PuntYards: number; + PuntsInside20: number; + PuntAverage: number; + Inside20YardLine: number; + KickReturnYards: number; + KickReturnTDs: number; + PuntReturnYards: number; + PuntReturnTDs: number; + OffensivePenalties: number; + DefensivePenalties: number; + OffPenaltyYards: number; + DefPenaltyYards: number; + Score1Q: number; + Score2Q: number; + Score3Q: number; + Score4Q: number; + Score5Q: number; + Score6Q: number; + Score7Q: number; + ScoreOT: number; + OffensiveScheme: string; + DefensiveScheme: string; + OffensiveSnaps: number; + DefensiveSnaps: number; + SpecialTeamSnaps: number; + GameType: number; + RevealResults: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.GameID = source["GameID"]; + this.WeekID = source["WeekID"]; + this.SeasonID = source["SeasonID"]; + this.OpposingTeam = source["OpposingTeam"]; + this.PointsScored = source["PointsScored"]; + this.PointsAgainst = source["PointsAgainst"]; + this.TwoPointTries = source["TwoPointTries"]; + this.TwoPointSucceed = source["TwoPointSucceed"]; + this.PassingYards = source["PassingYards"]; + this.PassingAttempts = source["PassingAttempts"]; + this.PassingCompletions = source["PassingCompletions"]; + this.LongestPass = source["LongestPass"]; + this.PassingTouchdowns = source["PassingTouchdowns"]; + this.PassingInterceptions = source["PassingInterceptions"]; + this.QBRating = source["QBRating"]; + this.QBSacks = source["QBSacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingYardsPerAttempt = source["RushingYardsPerAttempt"]; + this.LongestRush = source["LongestRush"]; + this.RushingTouchdowns = source["RushingTouchdowns"]; + this.RushingFumbles = source["RushingFumbles"]; + this.ReceivingTargets = source["ReceivingTargets"]; + this.ReceivingCatches = source["ReceivingCatches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.YardsPerCatch = source["YardsPerCatch"]; + this.ReceivingTouchdowns = source["ReceivingTouchdowns"]; + this.ReceivingFumbles = source["ReceivingFumbles"]; + this.PassingYardsAllowed = source["PassingYardsAllowed"]; + this.PassingTDsAllowed = source["PassingTDsAllowed"]; + this.PassingCompletionsAllowed = source["PassingCompletionsAllowed"]; + this.RushingYardsAllowed = source["RushingYardsAllowed"]; + this.RushingTDsAllowed = source["RushingTDsAllowed"]; + this.RushingYardsPerAttemptAllowed = source["RushingYardsPerAttemptAllowed"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.DefensiveSacks = source["DefensiveSacks"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.FumblesRecovered = source["FumblesRecovered"]; + this.DefensiveInterceptions = source["DefensiveInterceptions"]; + this.TurnoverYards = source["TurnoverYards"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.Safeties = source["Safeties"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.ExtraPointPercentage = source["ExtraPointPercentage"]; + this.FieldGoalsMade = source["FieldGoalsMade"]; + this.FieldGoalsAttempted = source["FieldGoalsAttempted"]; + this.FieldGoalsPercentage = source["FieldGoalsPercentage"]; + this.LongestFieldGoal = source["LongestFieldGoal"]; + this.KickoffTBs = source["KickoffTBs"]; + this.PuntTBs = source["PuntTBs"]; + this.Punts = source["Punts"]; + this.PuntYards = source["PuntYards"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.PuntAverage = source["PuntAverage"]; + this.Inside20YardLine = source["Inside20YardLine"]; + this.KickReturnYards = source["KickReturnYards"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.OffensivePenalties = source["OffensivePenalties"]; + this.DefensivePenalties = source["DefensivePenalties"]; + this.OffPenaltyYards = source["OffPenaltyYards"]; + this.DefPenaltyYards = source["DefPenaltyYards"]; + this.Score1Q = source["Score1Q"]; + this.Score2Q = source["Score2Q"]; + this.Score3Q = source["Score3Q"]; + this.Score4Q = source["Score4Q"]; + this.Score5Q = source["Score5Q"]; + this.Score6Q = source["Score6Q"]; + this.Score7Q = source["Score7Q"]; + this.ScoreOT = source["ScoreOT"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.OffensiveSnaps = source["OffensiveSnaps"]; + this.DefensiveSnaps = source["DefensiveSnaps"]; + this.SpecialTeamSnaps = source["SpecialTeamSnaps"]; + this.GameType = source["GameType"]; + this.RevealResults = source["RevealResults"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class ProfileAffinity { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + AffinityID: number; + ProfileID: number; + AffinityName: string; + IsApplicable: boolean; + IsDynamicAffinity: boolean; + IsCheckedWeekly: boolean; + IsCheckedSeasonal: boolean; + AffinityValue: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.AffinityID = source["AffinityID"]; + this.ProfileID = source["ProfileID"]; + this.AffinityName = source["AffinityName"]; + this.IsApplicable = source["IsApplicable"]; + this.IsDynamicAffinity = source["IsDynamicAffinity"]; + this.IsCheckedWeekly = source["IsCheckedWeekly"]; + this.IsCheckedSeasonal = source["IsCheckedSeasonal"]; + this.AffinityValue = source["AffinityValue"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class Recruit { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + PlayerID: number; + TeamID: number; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + HighSchool: string; + City: string; + State: string; + AffinityOne: string; + AffinityTwo: string; + IsSigned: boolean; + IsCustomCroot: boolean; + CustomCrootFor: string; + College: string; + OverallRank: number; + RivalsRank: number; + ESPNRank: number; + Rank247: number; + TopRankModifier: number; + RecruitingModifier: number; + RecruitingStatus: string; + RecruitPlayerProfiles: RecruitPlayerProfile[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.AffinityOne = source["AffinityOne"]; + this.AffinityTwo = source["AffinityTwo"]; + this.IsSigned = source["IsSigned"]; + this.IsCustomCroot = source["IsCustomCroot"]; + this.CustomCrootFor = source["CustomCrootFor"]; + this.College = source["College"]; + this.OverallRank = source["OverallRank"]; + this.RivalsRank = source["RivalsRank"]; + this.ESPNRank = source["ESPNRank"]; + this.Rank247 = source["Rank247"]; + this.TopRankModifier = source["TopRankModifier"]; + this.RecruitingModifier = source["RecruitingModifier"]; + this.RecruitingStatus = source["RecruitingStatus"]; + this.RecruitPlayerProfiles = this.convertValues(source["RecruitPlayerProfiles"], RecruitPlayerProfile); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class RecruitPlayerProfile { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + SeasonID: number; + RecruitID: number; + ProfileID: number; + TotalPoints: number; + CurrentWeeksPoints: number; + PreviousWeekPoints: number; + SpendingCount: number; + RecruitingEfficiencyScore: number; + Scholarship: boolean; + ScholarshipRevoked: boolean; + AffinityOneEligible: boolean; + AffinityTwoEligible: boolean; + TeamAbbreviation: string; + Recruiter: string; + RemovedFromBoard: boolean; + IsSigned: boolean; + IsLocked: boolean; + CaughtCheating: boolean; + TeamReachedMax: boolean; + Recruit: Recruit; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.SeasonID = source["SeasonID"]; + this.RecruitID = source["RecruitID"]; + this.ProfileID = source["ProfileID"]; + this.TotalPoints = source["TotalPoints"]; + this.CurrentWeeksPoints = source["CurrentWeeksPoints"]; + this.PreviousWeekPoints = source["PreviousWeekPoints"]; + this.SpendingCount = source["SpendingCount"]; + this.RecruitingEfficiencyScore = source["RecruitingEfficiencyScore"]; + this.Scholarship = source["Scholarship"]; + this.ScholarshipRevoked = source["ScholarshipRevoked"]; + this.AffinityOneEligible = source["AffinityOneEligible"]; + this.AffinityTwoEligible = source["AffinityTwoEligible"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.Recruiter = source["Recruiter"]; + this.RemovedFromBoard = source["RemovedFromBoard"]; + this.IsSigned = source["IsSigned"]; + this.IsLocked = source["IsLocked"]; + this.CaughtCheating = source["CaughtCheating"]; + this.TeamReachedMax = source["TeamReachedMax"]; + this.Recruit = this.convertValues(source["Recruit"], Recruit); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class RecruitingTeamProfile { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + Team: string; + TeamAbbreviation: string; + State: string; + ScholarshipsAvailable: number; + WeeklyPoints: number; + SpentPoints: number; + TotalCommitments: number; + RecruitClassSize: number; + PortalReputation: number; + BaseEfficiencyScore: number; + RecruitingEfficiencyScore: number; + PreviousOverallWinPer: number; + PreviousConferenceWinPer: number; + CurrentOverallWinPer: number; + CurrentConferenceWinPer: number; + ESPNScore: number; + RivalsScore: number; + Rank247Score: number; + CompositeScore: number; + ThreeStars: number; + FourStars: number; + FiveStars: number; + RecruitingClassRank: number; + CaughtCheating: boolean; + IsFBS: boolean; + IsAI: boolean; + IsUserTeam: boolean; + AIBehavior: string; + AIQuality: string; + WeeksMissed: number; + BattlesWon: number; + BattlesLost: number; + AIMinThreshold: number; + AIMaxThreshold: number; + AIStarMin: number; + AIStarMax: number; + AIAutoOfferscholarships: boolean; + OffensiveScheme: string; + DefensiveScheme: string; + Recruiter: string; + AcademicsAffinity: boolean; + FrontrunnerAffinity: boolean; + LargeCrowdsAffinity: boolean; + ReligionAffinity: boolean; + ServiceAffinity: boolean; + SmallSchoolAffinity: boolean; + SmallTownAffinity: boolean; + BigCityAffinity: boolean; + MediaSpotlightAffinity: boolean; + RisingStarsAffinity: boolean; + Recruits: RecruitPlayerProfile[]; + Affinities: ProfileAffinity[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.State = source["State"]; + this.ScholarshipsAvailable = source["ScholarshipsAvailable"]; + this.WeeklyPoints = source["WeeklyPoints"]; + this.SpentPoints = source["SpentPoints"]; + this.TotalCommitments = source["TotalCommitments"]; + this.RecruitClassSize = source["RecruitClassSize"]; + this.PortalReputation = source["PortalReputation"]; + this.BaseEfficiencyScore = source["BaseEfficiencyScore"]; + this.RecruitingEfficiencyScore = source["RecruitingEfficiencyScore"]; + this.PreviousOverallWinPer = source["PreviousOverallWinPer"]; + this.PreviousConferenceWinPer = source["PreviousConferenceWinPer"]; + this.CurrentOverallWinPer = source["CurrentOverallWinPer"]; + this.CurrentConferenceWinPer = source["CurrentConferenceWinPer"]; + this.ESPNScore = source["ESPNScore"]; + this.RivalsScore = source["RivalsScore"]; + this.Rank247Score = source["Rank247Score"]; + this.CompositeScore = source["CompositeScore"]; + this.ThreeStars = source["ThreeStars"]; + this.FourStars = source["FourStars"]; + this.FiveStars = source["FiveStars"]; + this.RecruitingClassRank = source["RecruitingClassRank"]; + this.CaughtCheating = source["CaughtCheating"]; + this.IsFBS = source["IsFBS"]; + this.IsAI = source["IsAI"]; + this.IsUserTeam = source["IsUserTeam"]; + this.AIBehavior = source["AIBehavior"]; + this.AIQuality = source["AIQuality"]; + this.WeeksMissed = source["WeeksMissed"]; + this.BattlesWon = source["BattlesWon"]; + this.BattlesLost = source["BattlesLost"]; + this.AIMinThreshold = source["AIMinThreshold"]; + this.AIMaxThreshold = source["AIMaxThreshold"]; + this.AIStarMin = source["AIStarMin"]; + this.AIStarMax = source["AIStarMax"]; + this.AIAutoOfferscholarships = source["AIAutoOfferscholarships"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.Recruiter = source["Recruiter"]; + this.AcademicsAffinity = source["AcademicsAffinity"]; + this.FrontrunnerAffinity = source["FrontrunnerAffinity"]; + this.LargeCrowdsAffinity = source["LargeCrowdsAffinity"]; + this.ReligionAffinity = source["ReligionAffinity"]; + this.ServiceAffinity = source["ServiceAffinity"]; + this.SmallSchoolAffinity = source["SmallSchoolAffinity"]; + this.SmallTownAffinity = source["SmallTownAffinity"]; + this.BigCityAffinity = source["BigCityAffinity"]; + this.MediaSpotlightAffinity = source["MediaSpotlightAffinity"]; + this.RisingStarsAffinity = source["RisingStarsAffinity"]; + this.Recruits = this.convertValues(source["Recruits"], RecruitPlayerProfile); + this.Affinities = this.convertValues(source["Affinities"], ProfileAffinity); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeCoach { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + CoachName: string; + Age: number; + TeamID: number; + Team: string; + AlmaMaterID: number; + AlmaMater: string; + FormerPlayerID: number; + Prestige: number; + PointMin: number; + PointMax: number; + StarMin: number; + StarMax: number; + Odds1: number; + Odds2: number; + Odds3: number; + Odds4: number; + Odds5: number; + PositionOne: string; + PositionTwo: string; + PositionThree: string; + OffensiveScheme: string; + DefensiveScheme: string; + TeambuildingPreference: string; + CareerPreference: string; + PromiseTendency: string; + PortalReputation: number; + SchoolTenure: number; + CareerTenure: number; + ContractLength: number; + YearsRemaining: number; + OverallWins: number; + OverallLosses: number; + OverallConferenceChampionships: number; + BowlWins: number; + BowlLosses: number; + PlayoffWins: number; + PlayoffLosses: number; + NationalChampionships: number; + IsUser: boolean; + IsActive: boolean; + IsRetired: boolean; + IsFormerPlayer: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.CoachName = source["CoachName"]; + this.Age = source["Age"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.AlmaMaterID = source["AlmaMaterID"]; + this.AlmaMater = source["AlmaMater"]; + this.FormerPlayerID = source["FormerPlayerID"]; + this.Prestige = source["Prestige"]; + this.PointMin = source["PointMin"]; + this.PointMax = source["PointMax"]; + this.StarMin = source["StarMin"]; + this.StarMax = source["StarMax"]; + this.Odds1 = source["Odds1"]; + this.Odds2 = source["Odds2"]; + this.Odds3 = source["Odds3"]; + this.Odds4 = source["Odds4"]; + this.Odds5 = source["Odds5"]; + this.PositionOne = source["PositionOne"]; + this.PositionTwo = source["PositionTwo"]; + this.PositionThree = source["PositionThree"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.TeambuildingPreference = source["TeambuildingPreference"]; + this.CareerPreference = source["CareerPreference"]; + this.PromiseTendency = source["PromiseTendency"]; + this.PortalReputation = source["PortalReputation"]; + this.SchoolTenure = source["SchoolTenure"]; + this.CareerTenure = source["CareerTenure"]; + this.ContractLength = source["ContractLength"]; + this.YearsRemaining = source["YearsRemaining"]; + this.OverallWins = source["OverallWins"]; + this.OverallLosses = source["OverallLosses"]; + this.OverallConferenceChampionships = source["OverallConferenceChampionships"]; + this.BowlWins = source["BowlWins"]; + this.BowlLosses = source["BowlLosses"]; + this.PlayoffWins = source["PlayoffWins"]; + this.PlayoffLosses = source["PlayoffLosses"]; + this.NationalChampionships = source["NationalChampionships"]; + this.IsUser = source["IsUser"]; + this.IsActive = source["IsActive"]; + this.IsRetired = source["IsRetired"]; + this.IsFormerPlayer = source["IsFormerPlayer"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class Time { + + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + + } +} +export class CollegeTeam { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamName: string; + Mascot: string; + TeamAbbr: string; + Coach: string; + City: string; + State: string; + Country: string; + StadiumID: number; + Stadium: string; + StadiumCapacity: number; + RecordAttendance: number; + Enrollment: number; + FirstPlayed: number; + ColorOne: string; + ColorTwo: string; + ColorThree: string; + DiscordID: string; + OverallGrade: string; + OffenseGrade: string; + DefenseGrade: string; + SpecialTeamsGrade: string; + PenaltyMarks: number; + JerseyType: number; + ConferenceID: number; + Conference: string; + DivisionID: number; + Division: string; + ProgramPrestige: number; + AcademicPrestige: number; + Facilities: number; + IsFBS: boolean; + IsActive: boolean; + PlayersProgressed: boolean; + RecruitsAdded: boolean; + CollegeCoach: CollegeCoach; + RecruitingProfile: RecruitingTeamProfile; + TeamStats: CollegeTeamStats[]; + TeamSeasonStats: CollegeTeamSeasonStats; + TeamRecord: CollegeTeamRecords; + TeamGameplan: CollegeGameplan; + TeamDepthChart: CollegeTeamDepthChart; + TeamStandings: CollegeStandings[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamName = source["TeamName"]; + this.Mascot = source["Mascot"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Coach = source["Coach"]; + this.City = source["City"]; + this.State = source["State"]; + this.Country = source["Country"]; + this.StadiumID = source["StadiumID"]; + this.Stadium = source["Stadium"]; + this.StadiumCapacity = source["StadiumCapacity"]; + this.RecordAttendance = source["RecordAttendance"]; + this.Enrollment = source["Enrollment"]; + this.FirstPlayed = source["FirstPlayed"]; + this.ColorOne = source["ColorOne"]; + this.ColorTwo = source["ColorTwo"]; + this.ColorThree = source["ColorThree"]; + this.DiscordID = source["DiscordID"]; + this.OverallGrade = source["OverallGrade"]; + this.OffenseGrade = source["OffenseGrade"]; + this.DefenseGrade = source["DefenseGrade"]; + this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; + this.PenaltyMarks = source["PenaltyMarks"]; + this.JerseyType = source["JerseyType"]; + this.ConferenceID = source["ConferenceID"]; + this.Conference = source["Conference"]; + this.DivisionID = source["DivisionID"]; + this.Division = source["Division"]; + this.ProgramPrestige = source["ProgramPrestige"]; + this.AcademicPrestige = source["AcademicPrestige"]; + this.Facilities = source["Facilities"]; + this.IsFBS = source["IsFBS"]; + this.IsActive = source["IsActive"]; + this.PlayersProgressed = source["PlayersProgressed"]; + this.RecruitsAdded = source["RecruitsAdded"]; + this.CollegeCoach = this.convertValues(source["CollegeCoach"], CollegeCoach); + this.RecruitingProfile = this.convertValues(source["RecruitingProfile"], RecruitingTeamProfile); + this.TeamStats = this.convertValues(source["TeamStats"], CollegeTeamStats); + this.TeamSeasonStats = this.convertValues(source["TeamSeasonStats"], CollegeTeamSeasonStats); + this.TeamRecord = this.convertValues(source["TeamRecord"], CollegeTeamRecords); + this.TeamGameplan = this.convertValues(source["TeamGameplan"], CollegeGameplan); + this.TeamDepthChart = this.convertValues(source["TeamDepthChart"], CollegeTeamDepthChart); + this.TeamStandings = this.convertValues(source["TeamStandings"], CollegeStandings); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class BootstrapData { + CollegeTeam: CollegeTeam; + AllCollegeTeams: CollegeTeam[]; + CollegeRosterMap: {[key: uint]: CollegePlayer[]}; + TopCFBPassers: CollegePlayer[]; + TopCFBRushers: CollegePlayer[]; + TopCFBReceivers: CollegePlayer[]; + PortalPlayers: CollegePlayer[]; + CollegeInjuryReport: CollegePlayer[]; + CollegeNotifications: Notification[]; + CollegeGameplan: CollegeGameplan; + CollegeDepthChart: CollegeTeamDepthChart; + ProTeam: NFLTeam; + AllProTeams: NFLTeam[]; + ProNotifications: Notification[]; + NFLGameplan: NFLGameplan; + NFLDepthChart: NFLDepthChart; + FaceData: {[key: uint]: FaceDataResponse}; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CollegeTeam = this.convertValues(source["CollegeTeam"], CollegeTeam); + this.AllCollegeTeams = this.convertValues(source["AllCollegeTeams"], CollegeTeam); + this.CollegeRosterMap = source["CollegeRosterMap"]; + this.TopCFBPassers = this.convertValues(source["TopCFBPassers"], CollegePlayer); + this.TopCFBRushers = this.convertValues(source["TopCFBRushers"], CollegePlayer); + this.TopCFBReceivers = this.convertValues(source["TopCFBReceivers"], CollegePlayer); + this.PortalPlayers = this.convertValues(source["PortalPlayers"], CollegePlayer); + this.CollegeInjuryReport = this.convertValues(source["CollegeInjuryReport"], CollegePlayer); + this.CollegeNotifications = this.convertValues(source["CollegeNotifications"], Notification); + this.CollegeGameplan = this.convertValues(source["CollegeGameplan"], CollegeGameplan); + this.CollegeDepthChart = this.convertValues(source["CollegeDepthChart"], CollegeTeamDepthChart); + this.ProTeam = this.convertValues(source["ProTeam"], NFLTeam); + this.AllProTeams = this.convertValues(source["AllProTeams"], NFLTeam); + this.ProNotifications = this.convertValues(source["ProNotifications"], Notification); + this.NFLGameplan = this.convertValues(source["NFLGameplan"], NFLGameplan); + this.NFLDepthChart = this.convertValues(source["NFLDepthChart"], NFLDepthChart); + this.FaceData = this.convertValues(source["FaceData"], FaceDataResponse, true); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLGame { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + WeekID: number; + Week: number; + SeasonID: number; + HomeTeamID: number; + HomeTeam: string; + HomeTeamCoach: string; + HomeTeamWin: boolean; + AwayTeamID: number; + AwayTeam: string; + AwayTeamCoach: string; + AwayTeamWin: boolean; + MVP: string; + HomeTeamScore: number; + AwayTeamScore: number; + TimeSlot: string; + StadiumID: number; + Stadium: string; + City: string; + State: string; + Region: string; + LowTemp: number; + HighTemp: number; + GameTemp: number; + Cloud: string; + Precip: string; + WindSpeed: number; + WindCategory: string; + IsNeutral: boolean; + IsDomed: boolean; + IsNightGame: boolean; + IsPlayoffGame: boolean; + IsRivalryGame: boolean; + IsConference: boolean; + IsDivisional: boolean; + IsConferenceChampionship: boolean; + IsSuperBowl: boolean; + GameComplete: boolean; + IsPreseasonGame: boolean; + GameTitle: string; + NextGameID: number; + NextGameHOA: string; + HomePreviousBye: boolean; + AwayPreviousBye: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.WeekID = source["WeekID"]; + this.Week = source["Week"]; + this.SeasonID = source["SeasonID"]; + this.HomeTeamID = source["HomeTeamID"]; + this.HomeTeam = source["HomeTeam"]; + this.HomeTeamCoach = source["HomeTeamCoach"]; + this.HomeTeamWin = source["HomeTeamWin"]; + this.AwayTeamID = source["AwayTeamID"]; + this.AwayTeam = source["AwayTeam"]; + this.AwayTeamCoach = source["AwayTeamCoach"]; + this.AwayTeamWin = source["AwayTeamWin"]; + this.MVP = source["MVP"]; + this.HomeTeamScore = source["HomeTeamScore"]; + this.AwayTeamScore = source["AwayTeamScore"]; + this.TimeSlot = source["TimeSlot"]; + this.StadiumID = source["StadiumID"]; + this.Stadium = source["Stadium"]; + this.City = source["City"]; + this.State = source["State"]; + this.Region = source["Region"]; + this.LowTemp = source["LowTemp"]; + this.HighTemp = source["HighTemp"]; + this.GameTemp = source["GameTemp"]; + this.Cloud = source["Cloud"]; + this.Precip = source["Precip"]; + this.WindSpeed = source["WindSpeed"]; + this.WindCategory = source["WindCategory"]; + this.IsNeutral = source["IsNeutral"]; + this.IsDomed = source["IsDomed"]; + this.IsNightGame = source["IsNightGame"]; + this.IsPlayoffGame = source["IsPlayoffGame"]; + this.IsRivalryGame = source["IsRivalryGame"]; + this.IsConference = source["IsConference"]; + this.IsDivisional = source["IsDivisional"]; + this.IsConferenceChampionship = source["IsConferenceChampionship"]; + this.IsSuperBowl = source["IsSuperBowl"]; + this.GameComplete = source["GameComplete"]; + this.IsPreseasonGame = source["IsPreseasonGame"]; + this.GameTitle = source["GameTitle"]; + this.NextGameID = source["NextGameID"]; + this.NextGameHOA = source["NextGameHOA"]; + this.HomePreviousBye = source["HomePreviousBye"]; + this.AwayPreviousBye = source["AwayPreviousBye"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegeGame { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + WeekID: number; + Week: number; + SeasonID: number; + HomeTeamRank: number; + HomeTeamID: number; + HomeTeam: string; + HomeTeamCoach: string; + HomeTeamWin: boolean; + AwayTeamRank: number; + AwayTeamID: number; + AwayTeam: string; + AwayTeamCoach: string; + AwayTeamWin: boolean; + MVP: string; + HomeTeamScore: number; + AwayTeamScore: number; + TimeSlot: string; + StadiumID: number; + Stadium: string; + City: string; + State: string; + Region: string; + LowTemp: number; + HighTemp: number; + GameTemp: number; + Cloud: string; + Precip: string; + WindSpeed: number; + WindCategory: string; + IsNeutral: boolean; + IsDomed: boolean; + IsNightGame: boolean; + IsConference: boolean; + IsDivisional: boolean; + IsConferenceChampionship: boolean; + IsBowlGame: boolean; + IsPlayoffGame: boolean; + IsNationalChampionship: boolean; + IsRivalryGame: boolean; + GameComplete: boolean; + IsSpringGame: boolean; + GameTitle: string; + NextGameID: number; + NextGameHOA: string; + HomePreviousBye: boolean; + AwayPreviousBye: boolean; + ConferenceID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.WeekID = source["WeekID"]; + this.Week = source["Week"]; + this.SeasonID = source["SeasonID"]; + this.HomeTeamRank = source["HomeTeamRank"]; + this.HomeTeamID = source["HomeTeamID"]; + this.HomeTeam = source["HomeTeam"]; + this.HomeTeamCoach = source["HomeTeamCoach"]; + this.HomeTeamWin = source["HomeTeamWin"]; + this.AwayTeamRank = source["AwayTeamRank"]; + this.AwayTeamID = source["AwayTeamID"]; + this.AwayTeam = source["AwayTeam"]; + this.AwayTeamCoach = source["AwayTeamCoach"]; + this.AwayTeamWin = source["AwayTeamWin"]; + this.MVP = source["MVP"]; + this.HomeTeamScore = source["HomeTeamScore"]; + this.AwayTeamScore = source["AwayTeamScore"]; + this.TimeSlot = source["TimeSlot"]; + this.StadiumID = source["StadiumID"]; + this.Stadium = source["Stadium"]; + this.City = source["City"]; + this.State = source["State"]; + this.Region = source["Region"]; + this.LowTemp = source["LowTemp"]; + this.HighTemp = source["HighTemp"]; + this.GameTemp = source["GameTemp"]; + this.Cloud = source["Cloud"]; + this.Precip = source["Precip"]; + this.WindSpeed = source["WindSpeed"]; + this.WindCategory = source["WindCategory"]; + this.IsNeutral = source["IsNeutral"]; + this.IsDomed = source["IsDomed"]; + this.IsNightGame = source["IsNightGame"]; + this.IsConference = source["IsConference"]; + this.IsDivisional = source["IsDivisional"]; + this.IsConferenceChampionship = source["IsConferenceChampionship"]; + this.IsBowlGame = source["IsBowlGame"]; + this.IsPlayoffGame = source["IsPlayoffGame"]; + this.IsNationalChampionship = source["IsNationalChampionship"]; + this.IsRivalryGame = source["IsRivalryGame"]; + this.GameComplete = source["GameComplete"]; + this.IsSpringGame = source["IsSpringGame"]; + this.GameTitle = source["GameTitle"]; + this.NextGameID = source["NextGameID"]; + this.NextGameHOA = source["NextGameHOA"]; + this.HomePreviousBye = source["HomePreviousBye"]; + this.AwayPreviousBye = source["AwayPreviousBye"]; + this.ConferenceID = source["ConferenceID"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NewsLog { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + WeekID: number; + Week: number; + SeasonID: number; + TeamID: number; + MessageType: string; + Message: string; + League: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.WeekID = source["WeekID"]; + this.Week = source["Week"]; + this.SeasonID = source["SeasonID"]; + this.TeamID = source["TeamID"]; + this.MessageType = source["MessageType"]; + this.Message = source["Message"]; + this.League = source["League"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class BootstrapDataTwo { + CollegeNews: NewsLog[]; + AllCollegeGames: CollegeGame[]; + TeamProfileMap: {[key: string]: RecruitingTeamProfile}; + CollegeStandings: CollegeStandings[]; + ProStandings: NFLStandings[]; + AllProGames: NFLGame[]; + CapsheetMap: {[key: uint]: NFLCapsheet}; + ProRosterMap: {[key: uint]: NFLPlayer[]}; + PracticeSquadPlayers: NFLPlayer[]; + TopNFLPassers: NFLPlayer[]; + TopNFLRushers: NFLPlayer[]; + TopNFLReceivers: NFLPlayer[]; + ProInjuryReport: NFLPlayer[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CollegeNews = this.convertValues(source["CollegeNews"], NewsLog); + this.AllCollegeGames = this.convertValues(source["AllCollegeGames"], CollegeGame); + this.TeamProfileMap = source["TeamProfileMap"]; + this.CollegeStandings = this.convertValues(source["CollegeStandings"], CollegeStandings); + this.ProStandings = this.convertValues(source["ProStandings"], NFLStandings); + this.AllProGames = this.convertValues(source["AllProGames"], NFLGame); + this.CapsheetMap = this.convertValues(source["CapsheetMap"], NFLCapsheet, true); + this.ProRosterMap = source["ProRosterMap"]; + this.PracticeSquadPlayers = this.convertValues(source["PracticeSquadPlayers"], NFLPlayer); + this.TopNFLPassers = this.convertValues(source["TopNFLPassers"], NFLPlayer); + this.TopNFLRushers = this.convertValues(source["TopNFLRushers"], NFLPlayer); + this.TopNFLReceivers = this.convertValues(source["TopNFLReceivers"], NFLPlayer); + this.ProInjuryReport = this.convertValues(source["ProInjuryReport"], NFLPlayer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class LeadingTeams { + TeamID: number; + TeamName: string; + TeamAbbr: string; + Odds: number; + HasScholarship: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.TeamID = source["TeamID"]; + this.TeamName = source["TeamName"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Odds = source["Odds"]; + this.HasScholarship = source["HasScholarship"]; + } +} +export class Croot { + ID: number; + PlayerID: number; + TeamID: number; + College: string; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + Height: number; + Weight: number; + Stars: number; + PotentialGrade: string; + Personality: string; + RecruitingBias: string; + AcademicBias: string; + WorkEthic: string; + HighSchool: string; + City: string; + State: string; + AffinityOne: string; + AffinityTwo: string; + RecruitingStatus: string; + RecruitModifier: number; + IsCustomCroot: boolean; + CustomCrootFor: string; + IsSigned: boolean; + OverallGrade: string; + TotalRank: number; + LeadingTeams: LeadingTeams[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.College = source["College"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Stars = source["Stars"]; + this.PotentialGrade = source["PotentialGrade"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.AcademicBias = source["AcademicBias"]; + this.WorkEthic = source["WorkEthic"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.AffinityOne = source["AffinityOne"]; + this.AffinityTwo = source["AffinityTwo"]; + this.RecruitingStatus = source["RecruitingStatus"]; + this.RecruitModifier = source["RecruitModifier"]; + this.IsCustomCroot = source["IsCustomCroot"]; + this.CustomCrootFor = source["CustomCrootFor"]; + this.IsSigned = source["IsSigned"]; + this.OverallGrade = source["OverallGrade"]; + this.TotalRank = source["TotalRank"]; + this.LeadingTeams = this.convertValues(source["LeadingTeams"], LeadingTeams); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class BootstrapDataThree { + Recruits: Croot[]; + RecruitProfiles: RecruitPlayerProfile[]; + CollegeDepthChartMap: {[key: uint]: CollegeTeamDepthChart}; + FreeAgentOffers: FreeAgencyOffer[]; + WaiverWireOffers: NFLWaiverOffer[]; + ProNews: NewsLog[]; + NFLDepthChartMap: {[key: uint]: NFLDepthChart}; + ContractMap: {[key: uint]: NFLContract}; + ExtensionMap: {[key: uint]: NFLExtensionOffer}; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Recruits = this.convertValues(source["Recruits"], Croot); + this.RecruitProfiles = this.convertValues(source["RecruitProfiles"], RecruitPlayerProfile); + this.CollegeDepthChartMap = this.convertValues(source["CollegeDepthChartMap"], CollegeTeamDepthChart, true); + this.FreeAgentOffers = this.convertValues(source["FreeAgentOffers"], FreeAgencyOffer); + this.WaiverWireOffers = this.convertValues(source["WaiverWireOffers"], NFLWaiverOffer); + this.ProNews = this.convertValues(source["ProNews"], NewsLog); + this.NFLDepthChartMap = this.convertValues(source["NFLDepthChartMap"], NFLDepthChart, true); + this.ContractMap = this.convertValues(source["ContractMap"], NFLContract, true); + this.ExtensionMap = this.convertValues(source["ExtensionMap"], NFLExtensionOffer, true); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class FlexComparisonModel { + TeamOneID: number; + TeamOne: string; + TeamOneWins: number; + TeamOneLosses: number; + TeamOneStreak: number; + TeamOneMSeason: number; + TeamOneMScore: string; + TeamTwoID: number; + TeamTwo: string; + TeamTwoWins: number; + TeamTwoLosses: number; + TeamTwoStreak: number; + TeamTwoMSeason: number; + TeamTwoMScore: string; + CurrentStreak: number; + LatestWin: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.TeamOneID = source["TeamOneID"]; + this.TeamOne = source["TeamOne"]; + this.TeamOneWins = source["TeamOneWins"]; + this.TeamOneLosses = source["TeamOneLosses"]; + this.TeamOneStreak = source["TeamOneStreak"]; + this.TeamOneMSeason = source["TeamOneMSeason"]; + this.TeamOneMScore = source["TeamOneMScore"]; + this.TeamTwoID = source["TeamTwoID"]; + this.TeamTwo = source["TeamTwo"]; + this.TeamTwoWins = source["TeamTwoWins"]; + this.TeamTwoLosses = source["TeamTwoLosses"]; + this.TeamTwoStreak = source["TeamTwoStreak"]; + this.TeamTwoMSeason = source["TeamTwoMSeason"]; + this.TeamTwoMScore = source["TeamTwoMScore"]; + this.CurrentStreak = source["CurrentStreak"]; + this.LatestWin = source["LatestWin"]; + } +} +export class CollegeTeamProfileData { + CareerStats: CollegePlayerSeasonStats[]; + CollegeStandings: CollegeStandings[]; + Rivalries: FlexComparisonModel[]; + PlayerMap: {[key: uint]: CollegePlayer}; + CollegeGames: CollegeGame[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CareerStats = this.convertValues(source["CareerStats"], CollegePlayerSeasonStats); + this.CollegeStandings = this.convertValues(source["CollegeStandings"], CollegeStandings); + this.Rivalries = this.convertValues(source["Rivalries"], FlexComparisonModel); + this.PlayerMap = this.convertValues(source["PlayerMap"], CollegePlayer, true); + this.CollegeGames = this.convertValues(source["CollegeGames"], CollegeGame); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class SearchStatsResponse { + CFBPlayerGameStats: CollegePlayerStats[]; + CFBPlayerSeasonStats: CollegePlayerSeasonStats[]; + CFBTeamGameStats: CollegeTeamStats[]; + CFBTeamSeasonStats: CollegeTeamSeasonStats[]; + NFLPlayerGameStats: NFLPlayerStats[]; + NFLPlayerSeasonStats: NFLPlayerSeasonStats[]; + NFLTeamGameStats: NFLTeamStats[]; + NFLTeamSeasonStats: NFLTeamSeasonStats[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CFBPlayerGameStats = this.convertValues(source["CFBPlayerGameStats"], CollegePlayerStats); + this.CFBPlayerSeasonStats = this.convertValues(source["CFBPlayerSeasonStats"], CollegePlayerSeasonStats); + this.CFBTeamGameStats = this.convertValues(source["CFBTeamGameStats"], CollegeTeamStats); + this.CFBTeamSeasonStats = this.convertValues(source["CFBTeamSeasonStats"], CollegeTeamSeasonStats); + this.NFLPlayerGameStats = this.convertValues(source["NFLPlayerGameStats"], NFLPlayerStats); + this.NFLPlayerSeasonStats = this.convertValues(source["NFLPlayerSeasonStats"], NFLPlayerSeasonStats); + this.NFLTeamGameStats = this.convertValues(source["NFLTeamGameStats"], NFLTeamStats); + this.NFLTeamSeasonStats = this.convertValues(source["NFLTeamSeasonStats"], NFLTeamSeasonStats); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + +export class NFLRequest { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + Username: string; + NFLTeamID: number; + NFLTeam: string; + NFLTeamAbbreviation: string; + IsOwner: boolean; + IsManager: boolean; + IsCoach: boolean; + IsAssistant: boolean; + IsApproved: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.Username = source["Username"]; + this.NFLTeamID = source["NFLTeamID"]; + this.NFLTeam = source["NFLTeam"]; + this.NFLTeamAbbreviation = source["NFLTeamAbbreviation"]; + this.IsOwner = source["IsOwner"]; + this.IsManager = source["IsManager"]; + this.IsCoach = source["IsCoach"]; + this.IsAssistant = source["IsAssistant"]; + this.IsApproved = source["IsApproved"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class TeamRequest { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + Username: string; + IsApproved: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.Username = source["Username"]; + this.IsApproved = source["IsApproved"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class TeamRequestsResponse { + CollegeRequests: TeamRequest[]; + ProRequests: NFLRequest[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CollegeRequests = this.convertValues(source["CollegeRequests"], TeamRequest); + this.ProRequests = this.convertValues(source["ProRequests"], NFLRequest); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class BasePlayer { + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + } +} + + +export class BaseTeam { + TeamName: string; + Mascot: string; + TeamAbbr: string; + Coach: string; + City: string; + State: string; + Country: string; + StadiumID: number; + Stadium: string; + StadiumCapacity: number; + RecordAttendance: number; + Enrollment: number; + FirstPlayed: number; + ColorOne: string; + ColorTwo: string; + ColorThree: string; + DiscordID: string; + OverallGrade: string; + OffenseGrade: string; + DefenseGrade: string; + SpecialTeamsGrade: string; + PenaltyMarks: number; + JerseyType: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.TeamName = source["TeamName"]; + this.Mascot = source["Mascot"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Coach = source["Coach"]; + this.City = source["City"]; + this.State = source["State"]; + this.Country = source["Country"]; + this.StadiumID = source["StadiumID"]; + this.Stadium = source["Stadium"]; + this.StadiumCapacity = source["StadiumCapacity"]; + this.RecordAttendance = source["RecordAttendance"]; + this.Enrollment = source["Enrollment"]; + this.FirstPlayed = source["FirstPlayed"]; + this.ColorOne = source["ColorOne"]; + this.ColorTwo = source["ColorTwo"]; + this.ColorThree = source["ColorThree"]; + this.DiscordID = source["DiscordID"]; + this.OverallGrade = source["OverallGrade"]; + this.OffenseGrade = source["OffenseGrade"]; + this.DefenseGrade = source["DefenseGrade"]; + this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; + this.PenaltyMarks = source["PenaltyMarks"]; + this.JerseyType = source["JerseyType"]; + } +} + + +export class Stadium { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + StadiumName: string; + TeamID: number; + TeamAbbr: string; + City: string; + State: string; + Country: string; + Region: string; + WeatherRegion: string; + Capacity: number; + RecordAttendance: number; + FirstSeason: number; + LeagueID: number; + LeagueName: string; + IsDomed: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.StadiumName = source["StadiumName"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.City = source["City"]; + this.State = source["State"]; + this.Country = source["Country"]; + this.Region = source["Region"]; + this.WeatherRegion = source["WeatherRegion"]; + this.Capacity = source["Capacity"]; + this.RecordAttendance = source["RecordAttendance"]; + this.FirstSeason = source["FirstSeason"]; + this.LeagueID = source["LeagueID"]; + this.LeagueName = source["LeagueName"]; + this.IsDomed = source["IsDomed"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + + + + + + +export class CreateRecruitProfileDto { + PlayerID: number; + SeasonID: number; + RecruitID: number; + ProfileID: number; + Team: string; + RES: number; + AffinityOneEligible: boolean; + AffinityTwoEligible: boolean; + PlayerRecruit: Recruit; + Recruiter: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayerID = source["PlayerID"]; + this.SeasonID = source["SeasonID"]; + this.RecruitID = source["RecruitID"]; + this.ProfileID = source["ProfileID"]; + this.Team = source["Team"]; + this.RES = source["RES"]; + this.AffinityOneEligible = source["AffinityOneEligible"]; + this.AffinityTwoEligible = source["AffinityTwoEligible"]; + this.PlayerRecruit = this.convertValues(source["PlayerRecruit"], Recruit); + this.Recruiter = source["Recruiter"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class UpdateRecruitPointsDto { + RecruitPointsID: number; + RecruitID: number; + ProfileID: number; + Team: string; + WeekID: number; + AllocationID: number; + SpentPoints: number; + RewardScholarship: boolean; + RevokeScholarship: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.RecruitPointsID = source["RecruitPointsID"]; + this.RecruitID = source["RecruitID"]; + this.ProfileID = source["ProfileID"]; + this.Team = source["Team"]; + this.WeekID = source["WeekID"]; + this.AllocationID = source["AllocationID"]; + this.SpentPoints = source["SpentPoints"]; + this.RewardScholarship = source["RewardScholarship"]; + this.RevokeScholarship = source["RevokeScholarship"]; + } +} +export class CrootProfile { + ID: number; + SeasonID: number; + RecruitID: number; + ProfileID: number; + TotalPoints: number; + CurrentWeeksPoints: number; + SpendingCount: number; + RecruitingEfficiencyScore: number; + Scholarship: boolean; + ScholarshipRevoked: boolean; + AffinityOneEligible: boolean; + AffinityTwoEligible: boolean; + TeamAbbreviation: string; + RemovedFromBoard: boolean; + IsSigned: boolean; + IsLocked: boolean; + CaughtCheating: boolean; + Recruit: Croot; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.SeasonID = source["SeasonID"]; + this.RecruitID = source["RecruitID"]; + this.ProfileID = source["ProfileID"]; + this.TotalPoints = source["TotalPoints"]; + this.CurrentWeeksPoints = source["CurrentWeeksPoints"]; + this.SpendingCount = source["SpendingCount"]; + this.RecruitingEfficiencyScore = source["RecruitingEfficiencyScore"]; + this.Scholarship = source["Scholarship"]; + this.ScholarshipRevoked = source["ScholarshipRevoked"]; + this.AffinityOneEligible = source["AffinityOneEligible"]; + this.AffinityTwoEligible = source["AffinityTwoEligible"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.RemovedFromBoard = source["RemovedFromBoard"]; + this.IsSigned = source["IsSigned"]; + this.IsLocked = source["IsLocked"]; + this.CaughtCheating = source["CaughtCheating"]; + this.Recruit = this.convertValues(source["Recruit"], Croot); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class SimTeamBoardResponse { + ID: number; + TeamID: number; + Team: string; + TeamAbbreviation: string; + State: string; + ScholarshipsAvailable: number; + WeeklyPoints: number; + SpentPoints: number; + TotalCommitments: number; + RecruitClassSize: number; + BaseEfficiencyScore: number; + RecruitingEfficiencyScore: number; + PreviousOverallWinPer: number; + PreviousConferenceWinPer: number; + CurrentOverallWinPer: number; + CurrentConferenceWinPer: number; + ESPNScore: number; + RivalsScore: number; + Rank247Score: number; + CompositeScore: number; + IsAI: boolean; + IsUserTeam: boolean; + BattlesWon: number; + BattlesLost: number; + AIMinThreshold: number; + AIMaxThreshold: number; + AIStarMin: number; + AIStarMax: number; + AIAutoOfferscholarships: boolean; + OffensiveScheme: string; + DefensiveScheme: string; + Recruiter: string; + RecruitingClassRank: number; + Recruits: CrootProfile[]; + Affinities: ProfileAffinity[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.State = source["State"]; + this.ScholarshipsAvailable = source["ScholarshipsAvailable"]; + this.WeeklyPoints = source["WeeklyPoints"]; + this.SpentPoints = source["SpentPoints"]; + this.TotalCommitments = source["TotalCommitments"]; + this.RecruitClassSize = source["RecruitClassSize"]; + this.BaseEfficiencyScore = source["BaseEfficiencyScore"]; + this.RecruitingEfficiencyScore = source["RecruitingEfficiencyScore"]; + this.PreviousOverallWinPer = source["PreviousOverallWinPer"]; + this.PreviousConferenceWinPer = source["PreviousConferenceWinPer"]; + this.CurrentOverallWinPer = source["CurrentOverallWinPer"]; + this.CurrentConferenceWinPer = source["CurrentConferenceWinPer"]; + this.ESPNScore = source["ESPNScore"]; + this.RivalsScore = source["RivalsScore"]; + this.Rank247Score = source["Rank247Score"]; + this.CompositeScore = source["CompositeScore"]; + this.IsAI = source["IsAI"]; + this.IsUserTeam = source["IsUserTeam"]; + this.BattlesWon = source["BattlesWon"]; + this.BattlesLost = source["BattlesLost"]; + this.AIMinThreshold = source["AIMinThreshold"]; + this.AIMaxThreshold = source["AIMaxThreshold"]; + this.AIStarMin = source["AIStarMin"]; + this.AIStarMax = source["AIStarMax"]; + this.AIAutoOfferscholarships = source["AIAutoOfferscholarships"]; + this.OffensiveScheme = source["OffensiveScheme"]; + this.DefensiveScheme = source["DefensiveScheme"]; + this.Recruiter = source["Recruiter"]; + this.RecruitingClassRank = source["RecruitingClassRank"]; + this.Recruits = this.convertValues(source["Recruits"], CrootProfile); + this.Affinities = this.convertValues(source["Affinities"], ProfileAffinity); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class UpdateRecruitingBoardDTO { + Profile: RecruitingTeamProfile; + Recruits: RecruitPlayerProfile[]; + TeamID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Profile = this.convertValues(source["Profile"], RecruitingTeamProfile); + this.Recruits = this.convertValues(source["Recruits"], RecruitPlayerProfile); + this.TeamID = source["TeamID"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class RecruitPointAllocation { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + RecruitID: number; + TeamProfileID: number; + RecruitProfileID: number; + WeekID: number; + Points: number; + RESAffectedPoints: number; + AffinityOneApplied: boolean; + AffinityTwoApplied: boolean; + CaughtCheating: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.RecruitID = source["RecruitID"]; + this.TeamProfileID = source["TeamProfileID"]; + this.RecruitProfileID = source["RecruitProfileID"]; + this.WeekID = source["WeekID"]; + this.Points = source["Points"]; + this.RESAffectedPoints = source["RESAffectedPoints"]; + this.AffinityOneApplied = source["AffinityOneApplied"]; + this.AffinityTwoApplied = source["AffinityTwoApplied"]; + this.CaughtCheating = source["CaughtCheating"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + +export class RedshirtDTO { + PlayerID: number; + RedshirtStatus: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayerID = source["PlayerID"]; + this.RedshirtStatus = source["RedshirtStatus"]; + } +} +export class CFBRosterPageResponse { + Players: CollegePlayer[]; + Promises: CollegePromise[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Players = this.convertValues(source["Players"], CollegePlayer); + this.Promises = this.convertValues(source["Promises"], CollegePromise); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class TransferPlayerResponse { + FirstName: string; + LastName: string; + Archetype: string; + Position: string; + PositionTwo: string; + ArchetypeTwo: string; + Age: number; + Year: number; + State: string; + Country: string; + Stars: number; + Height: number; + Weight: number; + PotentialGrade: string; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + OverallGrade: string; + Personality: string; + RecruitingBias: string; + RecruitingBiasValue: string; + WorkEthic: string; + AcademicBias: string; + PlayerID: number; + TeamID: number; + TeamAbbr: string; + IsRedshirting: boolean; + IsRedshirt: boolean; + PreviousTeamID: number; + PreviousTeam: string; + TransferStatus: number; + TransferLikeliness: string; + LegacyID: number; + SeasonStats: CollegePlayerSeasonStats; + Stats: CollegePlayerStats; + LeadingTeams: LeadingTeams[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Archetype = source["Archetype"]; + this.Position = source["Position"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.Age = source["Age"]; + this.Year = source["Year"]; + this.State = source["State"]; + this.Country = source["Country"]; + this.Stars = source["Stars"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.PotentialGrade = source["PotentialGrade"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.OverallGrade = source["OverallGrade"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.RecruitingBiasValue = source["RecruitingBiasValue"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.IsRedshirting = source["IsRedshirting"]; + this.IsRedshirt = source["IsRedshirt"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.TransferStatus = source["TransferStatus"]; + this.TransferLikeliness = source["TransferLikeliness"]; + this.LegacyID = source["LegacyID"]; + this.SeasonStats = this.convertValues(source["SeasonStats"], CollegePlayerSeasonStats); + this.Stats = this.convertValues(source["Stats"], CollegePlayerStats); + this.LeadingTeams = this.convertValues(source["LeadingTeams"], LeadingTeams); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class TransferPortalProfileResponse { + ID: number; + SeasonID: number; + CollegePlayerID: number; + ProfileID: number; + PromiseID: number; + TeamAbbreviation: string; + TotalPoints: number; + CurrentWeeksPoints: number; + PreviouslySpentPoints: number; + SpendingCount: number; + RemovedFromBoard: boolean; + RolledOnPromise: boolean; + LockProfile: boolean; + IsSigned: boolean; + Recruiter: string; + CollegePlayer: TransferPlayerResponse; + Promise: CollegePromise; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.SeasonID = source["SeasonID"]; + this.CollegePlayerID = source["CollegePlayerID"]; + this.ProfileID = source["ProfileID"]; + this.PromiseID = source["PromiseID"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.TotalPoints = source["TotalPoints"]; + this.CurrentWeeksPoints = source["CurrentWeeksPoints"]; + this.PreviouslySpentPoints = source["PreviouslySpentPoints"]; + this.SpendingCount = source["SpendingCount"]; + this.RemovedFromBoard = source["RemovedFromBoard"]; + this.RolledOnPromise = source["RolledOnPromise"]; + this.LockProfile = source["LockProfile"]; + this.IsSigned = source["IsSigned"]; + this.Recruiter = source["Recruiter"]; + this.CollegePlayer = this.convertValues(source["CollegePlayer"], TransferPlayerResponse); + this.Promise = this.convertValues(source["Promise"], CollegePromise); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class TransferPortalResponse { + Team: RecruitingTeamProfile; + TeamBoard: TransferPortalProfileResponse[]; + TeamPromises: CollegePromise[]; + Players: TransferPlayerResponse[]; + TeamList: CollegeTeam[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Team = this.convertValues(source["Team"], RecruitingTeamProfile); + this.TeamBoard = this.convertValues(source["TeamBoard"], TransferPortalProfileResponse); + this.TeamPromises = this.convertValues(source["TeamPromises"], CollegePromise); + this.Players = this.convertValues(source["Players"], TransferPlayerResponse); + this.TeamList = this.convertValues(source["TeamList"], CollegeTeam); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class TransferPortalBoardDto { + Profiles: TransferPortalProfile[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Profiles = this.convertValues(source["Profiles"], TransferPortalProfile); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class UpdateTransferPortalBoard { + Profile: SimTeamBoardResponse; + Players: TransferPortalProfileResponse[]; + TeamID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Profile = this.convertValues(source["Profile"], SimTeamBoardResponse); + this.Players = this.convertValues(source["Players"], TransferPortalProfileResponse); + this.TeamID = source["TeamID"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + + + +export class FreeAgencyOfferDTO { + ID: number; + NFLPlayerID: number; + TeamID: number; + Team: string; + ContractLength: number; + Y1BaseSalary: number; + Y1Bonus: number; + Y2BaseSalary: number; + Y2Bonus: number; + Y3BaseSalary: number; + Y3Bonus: number; + Y4BaseSalary: number; + Y4Bonus: number; + Y5BaseSalary: number; + Y5Bonus: number; + AAV: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.ContractLength = source["ContractLength"]; + this.Y1BaseSalary = source["Y1BaseSalary"]; + this.Y1Bonus = source["Y1Bonus"]; + this.Y2BaseSalary = source["Y2BaseSalary"]; + this.Y2Bonus = source["Y2Bonus"]; + this.Y3BaseSalary = source["Y3BaseSalary"]; + this.Y3Bonus = source["Y3Bonus"]; + this.Y4BaseSalary = source["Y4BaseSalary"]; + this.Y4Bonus = source["Y4Bonus"]; + this.Y5BaseSalary = source["Y5BaseSalary"]; + this.Y5Bonus = source["Y5Bonus"]; + this.AAV = source["AAV"]; + } +} +export class NFLWaiverOffDTO { + ID: number; + NFLPlayerID: number; + TeamID: number; + Team: string; + WaiverOrder: number; + IsActive: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.WaiverOrder = source["WaiverOrder"]; + this.IsActive = source["IsActive"]; + } +} + +export class CollegePollSubmission { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: DeletedAt; + Username: string; + SeasonID: number; + WeekID: number; + Week: number; + Rank1: string; + Rank1ID: number; + Rank2: string; + Rank2ID: number; + Rank3: string; + Rank3ID: number; + Rank4: string; + Rank4ID: number; + Rank5: string; + Rank5ID: number; + Rank6: string; + Rank6ID: number; + Rank7: string; + Rank7ID: number; + Rank8: string; + Rank8ID: number; + Rank9: string; + Rank9ID: number; + Rank10: string; + Rank10ID: number; + Rank11: string; + Rank11ID: number; + Rank12: string; + Rank12ID: number; + Rank13: string; + Rank13ID: number; + Rank14: string; + Rank14ID: number; + Rank15: string; + Rank15ID: number; + Rank16: string; + Rank16ID: number; + Rank17: string; + Rank17ID: number; + Rank18: string; + Rank18ID: number; + Rank19: string; + Rank19ID: number; + Rank20: string; + Rank20ID: number; + Rank21: string; + Rank21ID: number; + Rank22: string; + Rank22ID: number; + Rank23: string; + Rank23ID: number; + Rank24: string; + Rank24ID: number; + Rank25: string; + Rank25ID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], DeletedAt); + this.Username = source["Username"]; + this.SeasonID = source["SeasonID"]; + this.WeekID = source["WeekID"]; + this.Week = source["Week"]; + this.Rank1 = source["Rank1"]; + this.Rank1ID = source["Rank1ID"]; + this.Rank2 = source["Rank2"]; + this.Rank2ID = source["Rank2ID"]; + this.Rank3 = source["Rank3"]; + this.Rank3ID = source["Rank3ID"]; + this.Rank4 = source["Rank4"]; + this.Rank4ID = source["Rank4ID"]; + this.Rank5 = source["Rank5"]; + this.Rank5ID = source["Rank5ID"]; + this.Rank6 = source["Rank6"]; + this.Rank6ID = source["Rank6ID"]; + this.Rank7 = source["Rank7"]; + this.Rank7ID = source["Rank7ID"]; + this.Rank8 = source["Rank8"]; + this.Rank8ID = source["Rank8ID"]; + this.Rank9 = source["Rank9"]; + this.Rank9ID = source["Rank9ID"]; + this.Rank10 = source["Rank10"]; + this.Rank10ID = source["Rank10ID"]; + this.Rank11 = source["Rank11"]; + this.Rank11ID = source["Rank11ID"]; + this.Rank12 = source["Rank12"]; + this.Rank12ID = source["Rank12ID"]; + this.Rank13 = source["Rank13"]; + this.Rank13ID = source["Rank13ID"]; + this.Rank14 = source["Rank14"]; + this.Rank14ID = source["Rank14ID"]; + this.Rank15 = source["Rank15"]; + this.Rank15ID = source["Rank15ID"]; + this.Rank16 = source["Rank16"]; + this.Rank16ID = source["Rank16ID"]; + this.Rank17 = source["Rank17"]; + this.Rank17ID = source["Rank17ID"]; + this.Rank18 = source["Rank18"]; + this.Rank18ID = source["Rank18ID"]; + this.Rank19 = source["Rank19"]; + this.Rank19ID = source["Rank19ID"]; + this.Rank20 = source["Rank20"]; + this.Rank20ID = source["Rank20ID"]; + this.Rank21 = source["Rank21"]; + this.Rank21ID = source["Rank21ID"]; + this.Rank22 = source["Rank22"]; + this.Rank22ID = source["Rank22ID"]; + this.Rank23 = source["Rank23"]; + this.Rank23ID = source["Rank23ID"]; + this.Rank24 = source["Rank24"]; + this.Rank24ID = source["Rank24ID"]; + this.Rank25 = source["Rank25"]; + this.Rank25ID = source["Rank25ID"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePollOfficial { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: DeletedAt; + SeasonID: number; + WeekID: number; + Week: number; + Rank1: string; + Rank1ID: number; + Rank1Votes: number; + Rank1No1Votes: number; + Rank2: string; + Rank2ID: number; + Rank2Votes: number; + Rank2No1Votes: number; + Rank3: string; + Rank3ID: number; + Rank3Votes: number; + Rank3No1Votes: number; + Rank4: string; + Rank4ID: number; + Rank4Votes: number; + Rank4No1Votes: number; + Rank5: string; + Rank5ID: number; + Rank5Votes: number; + Rank5No1Votes: number; + Rank6: string; + Rank6ID: number; + Rank6Votes: number; + Rank6No1Votes: number; + Rank7: string; + Rank7ID: number; + Rank7Votes: number; + Rank7No1Votes: number; + Rank8: string; + Rank8ID: number; + Rank8Votes: number; + Rank8No1Votes: number; + Rank9: string; + Rank9ID: number; + Rank9Votes: number; + Rank9No1Votes: number; + Rank10: string; + Rank10ID: number; + Rank10Votes: number; + Rank10No1Votes: number; + Rank11: string; + Rank11ID: number; + Rank11Votes: number; + Rank11No1Votes: number; + Rank12: string; + Rank12ID: number; + Rank12Votes: number; + Rank12No1Votes: number; + Rank13: string; + Rank13ID: number; + Rank13Votes: number; + Rank13No1Votes: number; + Rank14: string; + Rank14ID: number; + Rank14Votes: number; + Rank14No1Votes: number; + Rank15: string; + Rank15ID: number; + Rank15Votes: number; + Rank15No1Votes: number; + Rank16: string; + Rank16ID: number; + Rank16Votes: number; + Rank16No1Votes: number; + Rank17: string; + Rank17ID: number; + Rank17Votes: number; + Rank17No1Votes: number; + Rank18: string; + Rank18ID: number; + Rank18Votes: number; + Rank18No1Votes: number; + Rank19: string; + Rank19ID: number; + Rank19Votes: number; + Rank19No1Votes: number; + Rank20: string; + Rank20ID: number; + Rank20Votes: number; + Rank20No1Votes: number; + Rank21: string; + Rank21ID: number; + Rank21Votes: number; + Rank21No1Votes: number; + Rank22: string; + Rank22ID: number; + Rank22Votes: number; + Rank22No1Votes: number; + Rank23: string; + Rank23ID: number; + Rank23Votes: number; + Rank23No1Votes: number; + Rank24: string; + Rank24ID: number; + Rank24Votes: number; + Rank24No1Votes: number; + Rank25: string; + Rank25ID: number; + Rank25Votes: number; + Rank25No1Votes: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], DeletedAt); + this.SeasonID = source["SeasonID"]; + this.WeekID = source["WeekID"]; + this.Week = source["Week"]; + this.Rank1 = source["Rank1"]; + this.Rank1ID = source["Rank1ID"]; + this.Rank1Votes = source["Rank1Votes"]; + this.Rank1No1Votes = source["Rank1No1Votes"]; + this.Rank2 = source["Rank2"]; + this.Rank2ID = source["Rank2ID"]; + this.Rank2Votes = source["Rank2Votes"]; + this.Rank2No1Votes = source["Rank2No1Votes"]; + this.Rank3 = source["Rank3"]; + this.Rank3ID = source["Rank3ID"]; + this.Rank3Votes = source["Rank3Votes"]; + this.Rank3No1Votes = source["Rank3No1Votes"]; + this.Rank4 = source["Rank4"]; + this.Rank4ID = source["Rank4ID"]; + this.Rank4Votes = source["Rank4Votes"]; + this.Rank4No1Votes = source["Rank4No1Votes"]; + this.Rank5 = source["Rank5"]; + this.Rank5ID = source["Rank5ID"]; + this.Rank5Votes = source["Rank5Votes"]; + this.Rank5No1Votes = source["Rank5No1Votes"]; + this.Rank6 = source["Rank6"]; + this.Rank6ID = source["Rank6ID"]; + this.Rank6Votes = source["Rank6Votes"]; + this.Rank6No1Votes = source["Rank6No1Votes"]; + this.Rank7 = source["Rank7"]; + this.Rank7ID = source["Rank7ID"]; + this.Rank7Votes = source["Rank7Votes"]; + this.Rank7No1Votes = source["Rank7No1Votes"]; + this.Rank8 = source["Rank8"]; + this.Rank8ID = source["Rank8ID"]; + this.Rank8Votes = source["Rank8Votes"]; + this.Rank8No1Votes = source["Rank8No1Votes"]; + this.Rank9 = source["Rank9"]; + this.Rank9ID = source["Rank9ID"]; + this.Rank9Votes = source["Rank9Votes"]; + this.Rank9No1Votes = source["Rank9No1Votes"]; + this.Rank10 = source["Rank10"]; + this.Rank10ID = source["Rank10ID"]; + this.Rank10Votes = source["Rank10Votes"]; + this.Rank10No1Votes = source["Rank10No1Votes"]; + this.Rank11 = source["Rank11"]; + this.Rank11ID = source["Rank11ID"]; + this.Rank11Votes = source["Rank11Votes"]; + this.Rank11No1Votes = source["Rank11No1Votes"]; + this.Rank12 = source["Rank12"]; + this.Rank12ID = source["Rank12ID"]; + this.Rank12Votes = source["Rank12Votes"]; + this.Rank12No1Votes = source["Rank12No1Votes"]; + this.Rank13 = source["Rank13"]; + this.Rank13ID = source["Rank13ID"]; + this.Rank13Votes = source["Rank13Votes"]; + this.Rank13No1Votes = source["Rank13No1Votes"]; + this.Rank14 = source["Rank14"]; + this.Rank14ID = source["Rank14ID"]; + this.Rank14Votes = source["Rank14Votes"]; + this.Rank14No1Votes = source["Rank14No1Votes"]; + this.Rank15 = source["Rank15"]; + this.Rank15ID = source["Rank15ID"]; + this.Rank15Votes = source["Rank15Votes"]; + this.Rank15No1Votes = source["Rank15No1Votes"]; + this.Rank16 = source["Rank16"]; + this.Rank16ID = source["Rank16ID"]; + this.Rank16Votes = source["Rank16Votes"]; + this.Rank16No1Votes = source["Rank16No1Votes"]; + this.Rank17 = source["Rank17"]; + this.Rank17ID = source["Rank17ID"]; + this.Rank17Votes = source["Rank17Votes"]; + this.Rank17No1Votes = source["Rank17No1Votes"]; + this.Rank18 = source["Rank18"]; + this.Rank18ID = source["Rank18ID"]; + this.Rank18Votes = source["Rank18Votes"]; + this.Rank18No1Votes = source["Rank18No1Votes"]; + this.Rank19 = source["Rank19"]; + this.Rank19ID = source["Rank19ID"]; + this.Rank19Votes = source["Rank19Votes"]; + this.Rank19No1Votes = source["Rank19No1Votes"]; + this.Rank20 = source["Rank20"]; + this.Rank20ID = source["Rank20ID"]; + this.Rank20Votes = source["Rank20Votes"]; + this.Rank20No1Votes = source["Rank20No1Votes"]; + this.Rank21 = source["Rank21"]; + this.Rank21ID = source["Rank21ID"]; + this.Rank21Votes = source["Rank21Votes"]; + this.Rank21No1Votes = source["Rank21No1Votes"]; + this.Rank22 = source["Rank22"]; + this.Rank22ID = source["Rank22ID"]; + this.Rank22Votes = source["Rank22Votes"]; + this.Rank22No1Votes = source["Rank22No1Votes"]; + this.Rank23 = source["Rank23"]; + this.Rank23ID = source["Rank23ID"]; + this.Rank23Votes = source["Rank23Votes"]; + this.Rank23No1Votes = source["Rank23No1Votes"]; + this.Rank24 = source["Rank24"]; + this.Rank24ID = source["Rank24ID"]; + this.Rank24Votes = source["Rank24Votes"]; + this.Rank24No1Votes = source["Rank24No1Votes"]; + this.Rank25 = source["Rank25"]; + this.Rank25ID = source["Rank25ID"]; + this.Rank25Votes = source["Rank25Votes"]; + this.Rank25No1Votes = source["Rank25No1Votes"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class PollDataResponse { + Poll: CollegePollSubmission; + Matches: CollegeGame[]; + Standings: CollegeStandings[]; + OfficialPolls: CollegePollOfficial[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Poll = this.convertValues(source["Poll"], CollegePollSubmission); + this.Matches = this.convertValues(source["Matches"], CollegeGame); + this.Standings = this.convertValues(source["Standings"], CollegeStandings); + this.OfficialPolls = this.convertValues(source["OfficialPolls"], CollegePollOfficial); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class NFLDraftee { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; + HighSchool: string; + CollegeID: number; + College: string; + DraftedTeamID: number; + DraftedTeam: string; + DraftedRound: number; + DraftPickID: number; + DraftedPick: number; + City: string; + State: string; + OverallGrade: string; + StaminaGrade: string; + InjuryGrade: string; + FootballIQGrade: string; + SpeedGrade: string; + CarryingGrade: string; + AgilityGrade: string; + CatchingGrade: string; + RouteRunningGrade: string; + ZoneCoverageGrade: string; + ManCoverageGrade: string; + StrengthGrade: string; + TackleGrade: string; + PassBlockGrade: string; + RunBlockGrade: string; + PassRushGrade: string; + RunDefenseGrade: string; + ThrowPowerGrade: string; + ThrowAccuracyGrade: string; + KickAccuracyGrade: string; + KickPowerGrade: string; + PuntAccuracyGrade: string; + PuntPowerGrade: string; + BoomOrBust: boolean; + BoomOrBustStatus: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.HighSchool = source["HighSchool"]; + this.CollegeID = source["CollegeID"]; + this.College = source["College"]; + this.DraftedTeamID = source["DraftedTeamID"]; + this.DraftedTeam = source["DraftedTeam"]; + this.DraftedRound = source["DraftedRound"]; + this.DraftPickID = source["DraftPickID"]; + this.DraftedPick = source["DraftedPick"]; + this.City = source["City"]; + this.State = source["State"]; + this.OverallGrade = source["OverallGrade"]; + this.StaminaGrade = source["StaminaGrade"]; + this.InjuryGrade = source["InjuryGrade"]; + this.FootballIQGrade = source["FootballIQGrade"]; + this.SpeedGrade = source["SpeedGrade"]; + this.CarryingGrade = source["CarryingGrade"]; + this.AgilityGrade = source["AgilityGrade"]; + this.CatchingGrade = source["CatchingGrade"]; + this.RouteRunningGrade = source["RouteRunningGrade"]; + this.ZoneCoverageGrade = source["ZoneCoverageGrade"]; + this.ManCoverageGrade = source["ManCoverageGrade"]; + this.StrengthGrade = source["StrengthGrade"]; + this.TackleGrade = source["TackleGrade"]; + this.PassBlockGrade = source["PassBlockGrade"]; + this.RunBlockGrade = source["RunBlockGrade"]; + this.PassRushGrade = source["PassRushGrade"]; + this.RunDefenseGrade = source["RunDefenseGrade"]; + this.ThrowPowerGrade = source["ThrowPowerGrade"]; + this.ThrowAccuracyGrade = source["ThrowAccuracyGrade"]; + this.KickAccuracyGrade = source["KickAccuracyGrade"]; + this.KickPowerGrade = source["KickPowerGrade"]; + this.PuntAccuracyGrade = source["PuntAccuracyGrade"]; + this.PuntPowerGrade = source["PuntPowerGrade"]; + this.BoomOrBust = source["BoomOrBust"]; + this.BoomOrBustStatus = source["BoomOrBustStatus"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class ScoutingProfile { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + PlayerID: number; + TeamID: number; + ShowAttribute1: boolean; + ShowAttribute2: boolean; + ShowAttribute3: boolean; + ShowAttribute4: boolean; + ShowAttribute5: boolean; + ShowAttribute6: boolean; + ShowAttribute7: boolean; + ShowAttribute8: boolean; + ShowPotential: boolean; + RemovedFromBoard: boolean; + ShowCount: number; + Draftee: NFLDraftee; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.ShowAttribute1 = source["ShowAttribute1"]; + this.ShowAttribute2 = source["ShowAttribute2"]; + this.ShowAttribute3 = source["ShowAttribute3"]; + this.ShowAttribute4 = source["ShowAttribute4"]; + this.ShowAttribute5 = source["ShowAttribute5"]; + this.ShowAttribute6 = source["ShowAttribute6"]; + this.ShowAttribute7 = source["ShowAttribute7"]; + this.ShowAttribute8 = source["ShowAttribute8"]; + this.ShowPotential = source["ShowPotential"]; + this.RemovedFromBoard = source["RemovedFromBoard"]; + this.ShowCount = source["ShowCount"]; + this.Draftee = this.convertValues(source["Draftee"], NFLDraftee); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLWarRoom { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TeamID: number; + Team: string; + ScoutingPoints: number; + SpentPoints: number; + DraftPicks: NFLDraftPick[]; + ScoutProfiles: ScoutingProfile[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TeamID = source["TeamID"]; + this.Team = source["Team"]; + this.ScoutingPoints = source["ScoutingPoints"]; + this.SpentPoints = source["SpentPoints"]; + this.DraftPicks = this.convertValues(source["DraftPicks"], NFLDraftPick); + this.ScoutProfiles = this.convertValues(source["ScoutProfiles"], ScoutingProfile); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLDraftPageResponse { + WarRoom: NFLWarRoom; + DraftablePlayers: NFLDraftee[]; + NFLTeams: NFLTeam[]; + AllDraftPicks: NFLDraftPick[][]; + CollegeTeams: CollegeTeam[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.WarRoom = this.convertValues(source["WarRoom"], NFLWarRoom); + this.DraftablePlayers = this.convertValues(source["DraftablePlayers"], NFLDraftee); + this.NFLTeams = this.convertValues(source["NFLTeams"], NFLTeam); + this.AllDraftPicks = this.convertValues(source["AllDraftPicks"], NFLDraftPick); + this.CollegeTeams = this.convertValues(source["CollegeTeams"], CollegeTeam); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class ScoutingProfileDTO { + PlayerID: number; + TeamID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + } +} +export class ScoutingDataResponse { + DrafteeSeasonStats: CollegePlayerSeasonStats; + TeamStandings: CollegeStandings; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.DrafteeSeasonStats = this.convertValues(source["DrafteeSeasonStats"], CollegePlayerSeasonStats); + this.TeamStandings = this.convertValues(source["TeamStandings"], CollegeStandings); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class RevealAttributeDTO { + ScoutProfileID: number; + Attribute: string; + Points: number; + TeamID: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ScoutProfileID = source["ScoutProfileID"]; + this.Attribute = source["Attribute"]; + this.Points = source["Points"]; + this.TeamID = source["TeamID"]; + } +} +export class ExportDraftPicksDTO { + DraftPicks: NFLDraftPick[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.DraftPicks = this.convertValues(source["DraftPicks"], NFLDraftPick); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePlayerResponse { + ID: number; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + TeamID: number; + TeamAbbr: string; + City: string; + State: string; + Year: number; + IsRedshirt: boolean; + ConferenceID: number; + Conference: string; + Stats: CollegePlayerStats; + SeasonStats: CollegePlayerSeasonStats; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.City = source["City"]; + this.State = source["State"]; + this.Year = source["Year"]; + this.IsRedshirt = source["IsRedshirt"]; + this.ConferenceID = source["ConferenceID"]; + this.Conference = source["Conference"]; + this.Stats = this.convertValues(source["Stats"], CollegePlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], CollegePlayerSeasonStats); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLPlayerResponse { + ID: number; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + TeamID: number; + TeamAbbr: string; + City: string; + State: string; + Year: number; + ConferenceID: number; + Conference: string; + DivisionID: number; + Division: string; + Stats: NFLPlayerStats; + SeasonStats: NFLPlayerSeasonStats; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.City = source["City"]; + this.State = source["State"]; + this.Year = source["Year"]; + this.ConferenceID = source["ConferenceID"]; + this.Conference = source["Conference"]; + this.DivisionID = source["DivisionID"]; + this.Division = source["Division"]; + this.Stats = this.convertValues(source["Stats"], NFLPlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], NFLPlayerSeasonStats); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class CollegePlayerCSV { + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PositionTwo: string; + ArchetypeTwo: string; + Year: string; + Team: string; + Age: number; + Stars: number; + HighSchool: string; + City: string; + State: string; + College: string; + Height: number; + Weight: number; + Shotgun: number; + OverallGrade: string; + StaminaGrade: string; + InjuryGrade: string; + FootballIQGrade: string; + SpeedGrade: string; + CarryingGrade: string; + AgilityGrade: string; + CatchingGrade: string; + RouteRunningGrade: string; + ZoneCoverageGrade: string; + ManCoverageGrade: string; + StrengthGrade: string; + TackleGrade: string; + PassBlockGrade: string; + RunBlockGrade: string; + PassRushGrade: string; + RunDefenseGrade: string; + ThrowPowerGrade: string; + ThrowAccuracyGrade: string; + KickAccuracyGrade: string; + KickPowerGrade: string; + PuntAccuracyGrade: string; + PuntPowerGrade: string; + PotentialGrade: string; + RedshirtStatus: string; + Stats: CollegePlayerStats[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.Year = source["Year"]; + this.Team = source["Team"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.College = source["College"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Shotgun = source["Shotgun"]; + this.OverallGrade = source["OverallGrade"]; + this.StaminaGrade = source["StaminaGrade"]; + this.InjuryGrade = source["InjuryGrade"]; + this.FootballIQGrade = source["FootballIQGrade"]; + this.SpeedGrade = source["SpeedGrade"]; + this.CarryingGrade = source["CarryingGrade"]; + this.AgilityGrade = source["AgilityGrade"]; + this.CatchingGrade = source["CatchingGrade"]; + this.RouteRunningGrade = source["RouteRunningGrade"]; + this.ZoneCoverageGrade = source["ZoneCoverageGrade"]; + this.ManCoverageGrade = source["ManCoverageGrade"]; + this.StrengthGrade = source["StrengthGrade"]; + this.TackleGrade = source["TackleGrade"]; + this.PassBlockGrade = source["PassBlockGrade"]; + this.RunBlockGrade = source["RunBlockGrade"]; + this.PassRushGrade = source["PassRushGrade"]; + this.RunDefenseGrade = source["RunDefenseGrade"]; + this.ThrowPowerGrade = source["ThrowPowerGrade"]; + this.ThrowAccuracyGrade = source["ThrowAccuracyGrade"]; + this.KickAccuracyGrade = source["KickAccuracyGrade"]; + this.KickPowerGrade = source["KickPowerGrade"]; + this.PuntAccuracyGrade = source["PuntAccuracyGrade"]; + this.PuntPowerGrade = source["PuntPowerGrade"]; + this.PotentialGrade = source["PotentialGrade"]; + this.RedshirtStatus = source["RedshirtStatus"]; + this.Stats = this.convertValues(source["Stats"], CollegePlayerStats); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + + + + + + + + + + + + + +export class HistoricCollegePlayer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; + TeamID: number; + TeamAbbr: string; + HighSchool: string; + City: string; + State: string; + Year: number; + IsRedshirt: boolean; + IsRedshirting: boolean; + HasGraduated: boolean; + TransferStatus: number; + TransferLikeliness: string; + Stats: CollegePlayerStats[]; + SeasonStats: CollegePlayerSeasonStats; + HasProgressed: boolean; + WillDeclare: boolean; + LegacyID: number; + Profiles: TransferPortalProfile[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.TeamAbbr = source["TeamAbbr"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.Year = source["Year"]; + this.IsRedshirt = source["IsRedshirt"]; + this.IsRedshirting = source["IsRedshirting"]; + this.HasGraduated = source["HasGraduated"]; + this.TransferStatus = source["TransferStatus"]; + this.TransferLikeliness = source["TransferLikeliness"]; + this.Stats = this.convertValues(source["Stats"], CollegePlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], CollegePlayerSeasonStats); + this.HasProgressed = source["HasProgressed"]; + this.WillDeclare = source["WillDeclare"]; + this.LegacyID = source["LegacyID"]; + this.Profiles = this.convertValues(source["Profiles"], TransferPortalProfile); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLRetiredPlayer { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; + Height: number; + Weight: number; + Age: number; + Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; + PotentialGrade: string; + FreeAgency: string; + Personality: string; + RecruitingBias: string; + WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; + TeamID: number; + CollegeID: number; + College: string; + TeamAbbr: string; + Experience: number; + HighSchool: string; + Hometown: string; + State: string; + IsActive: boolean; + IsPracticeSquad: boolean; + IsFreeAgent: boolean; + IsWaived: boolean; + IsOnTradeBlock: boolean; + IsAcceptingOffers: boolean; + IsNegotiating: boolean; + NegotiationRound: number; + SigningRound: number; + MinimumValue: number; + AAV: number; + DraftedTeamID: number; + DraftedTeam: string; + DraftedRound: number; + DraftPickID: number; + DraftedPick: number; + ShowLetterGrade: boolean; + HasProgressed: boolean; + Rejections: number; + ProBowls: number; + TagType: number; + Stats: NFLPlayerStats[]; + SeasonStats: NFLPlayerSeasonStats; + Contract: NFLContract; + Offers: FreeAgencyOffer[]; + WaiverOffers: NFLWaiverOffer[]; + Extensions: NFLExtensionOffer[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Age = source["Age"]; + this.Stars = source["Stars"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.CollegeID = source["CollegeID"]; + this.College = source["College"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Experience = source["Experience"]; + this.HighSchool = source["HighSchool"]; + this.Hometown = source["Hometown"]; + this.State = source["State"]; + this.IsActive = source["IsActive"]; + this.IsPracticeSquad = source["IsPracticeSquad"]; + this.IsFreeAgent = source["IsFreeAgent"]; + this.IsWaived = source["IsWaived"]; + this.IsOnTradeBlock = source["IsOnTradeBlock"]; + this.IsAcceptingOffers = source["IsAcceptingOffers"]; + this.IsNegotiating = source["IsNegotiating"]; + this.NegotiationRound = source["NegotiationRound"]; + this.SigningRound = source["SigningRound"]; + this.MinimumValue = source["MinimumValue"]; + this.AAV = source["AAV"]; + this.DraftedTeamID = source["DraftedTeamID"]; + this.DraftedTeam = source["DraftedTeam"]; + this.DraftedRound = source["DraftedRound"]; + this.DraftPickID = source["DraftPickID"]; + this.DraftedPick = source["DraftedPick"]; + this.ShowLetterGrade = source["ShowLetterGrade"]; + this.HasProgressed = source["HasProgressed"]; + this.Rejections = source["Rejections"]; + this.ProBowls = source["ProBowls"]; + this.TagType = source["TagType"]; + this.Stats = this.convertValues(source["Stats"], NFLPlayerStats); + this.SeasonStats = this.convertValues(source["SeasonStats"], NFLPlayerSeasonStats); + this.Contract = this.convertValues(source["Contract"], NFLContract); + this.Offers = this.convertValues(source["Offers"], FreeAgencyOffer); + this.WaiverOffers = this.convertValues(source["WaiverOffers"], NFLWaiverOffer); + this.Extensions = this.convertValues(source["Extensions"], NFLExtensionOffer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class NFLTradeOption { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + TradeProposalID: number; + NFLTeamID: number; + NFLPlayerID: number; + NFLDraftPickID: number; + OptionType: string; + SalaryPercentage: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.TradeProposalID = source["TradeProposalID"]; + this.NFLTeamID = source["NFLTeamID"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.NFLDraftPickID = source["NFLDraftPickID"]; + this.OptionType = source["OptionType"]; + this.SalaryPercentage = source["SalaryPercentage"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTradeProposal { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLTeamID: number; + NFLTeam: string; + RecepientTeamID: number; + RecepientTeam: string; + IsTradeAccepted: boolean; + IsTradeRejected: boolean; + IsSynced: boolean; + NFLTeamTradeOptions: NFLTradeOption[]; + RecepientTeamTradeOptions: NFLTradeOption[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLTeamID = source["NFLTeamID"]; + this.NFLTeam = source["NFLTeam"]; + this.RecepientTeamID = source["RecepientTeamID"]; + this.RecepientTeam = source["RecepientTeam"]; + this.IsTradeAccepted = source["IsTradeAccepted"]; + this.IsTradeRejected = source["IsTradeRejected"]; + this.IsSynced = source["IsSynced"]; + this.NFLTeamTradeOptions = this.convertValues(source["NFLTeamTradeOptions"], NFLTradeOption); + this.RecepientTeamTradeOptions = this.convertValues(source["RecepientTeamTradeOptions"], NFLTradeOption); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTradeOptionObj { + ID: number; + TradeProposalID: number; + NFLTeamID: number; + NFLPlayerID: number; + NFLDraftPickID: number; + OptionType: string; + SalaryPercentage: number; + Player: NFLPlayer; + Draftpick: NFLDraftPick; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.TradeProposalID = source["TradeProposalID"]; + this.NFLTeamID = source["NFLTeamID"]; + this.NFLPlayerID = source["NFLPlayerID"]; + this.NFLDraftPickID = source["NFLDraftPickID"]; + this.OptionType = source["OptionType"]; + this.SalaryPercentage = source["SalaryPercentage"]; + this.Player = this.convertValues(source["Player"], NFLPlayer); + this.Draftpick = this.convertValues(source["Draftpick"], NFLDraftPick); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTradeProposalDTO { + ID: number; + NFLTeamID: number; + NFLTeam: string; + RecepientTeamID: number; + RecepientTeam: string; + IsTradeAccepted: boolean; + IsTradeRejected: boolean; + NFLTeamTradeOptions: NFLTradeOptionObj[]; + RecepientTeamTradeOptions: NFLTradeOptionObj[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.NFLTeamID = source["NFLTeamID"]; + this.NFLTeam = source["NFLTeam"]; + this.RecepientTeamID = source["RecepientTeamID"]; + this.RecepientTeam = source["RecepientTeam"]; + this.IsTradeAccepted = source["IsTradeAccepted"]; + this.IsTradeRejected = source["IsTradeRejected"]; + this.NFLTeamTradeOptions = this.convertValues(source["NFLTeamTradeOptions"], NFLTradeOptionObj); + this.RecepientTeamTradeOptions = this.convertValues(source["RecepientTeamTradeOptions"], NFLTradeOptionObj); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class NFLTeamProposals { + SentTradeProposals: NFLTradeProposalDTO[]; + ReceivedTradeProposals: NFLTradeProposalDTO[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.SentTradeProposals = this.convertValues(source["SentTradeProposals"], NFLTradeProposalDTO); + this.ReceivedTradeProposals = this.convertValues(source["ReceivedTradeProposals"], NFLTradeProposalDTO); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTradePreferences { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + NFLTeamID: number; + Quarterbacks: boolean; + QuarterbackType: string; + Runningbacks: boolean; + RunningbackType: string; + Fullbacks: boolean; + FullbackType: string; + WideReceivers: boolean; + WideReceiverType: string; + TightEnds: boolean; + TightEndType: string; + OffensiveTackles: boolean; + OffensiveGuards: boolean; + Centers: boolean; + OffensiveTackleType: string; + OffensiveGuardType: string; + CenterType: string; + DefensiveTackles: boolean; + DefensiveTackleType: string; + DefensiveEnds: boolean; + DefensiveEndType: string; + OutsideLinebackers: boolean; + OutsideLinebackerType: string; + InsideLinebackers: boolean; + InsideLinebackerType: string; + Cornerbacks: boolean; + CornerbackType: string; + FreeSafeties: boolean; + FreeSafetyType: string; + StrongSafeties: boolean; + StrongSafetyType: string; + Kickers: boolean; + KickerType: string; + Punters: boolean; + PunterType: string; + DraftPicks: boolean; + DraftPickType: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.NFLTeamID = source["NFLTeamID"]; + this.Quarterbacks = source["Quarterbacks"]; + this.QuarterbackType = source["QuarterbackType"]; + this.Runningbacks = source["Runningbacks"]; + this.RunningbackType = source["RunningbackType"]; + this.Fullbacks = source["Fullbacks"]; + this.FullbackType = source["FullbackType"]; + this.WideReceivers = source["WideReceivers"]; + this.WideReceiverType = source["WideReceiverType"]; + this.TightEnds = source["TightEnds"]; + this.TightEndType = source["TightEndType"]; + this.OffensiveTackles = source["OffensiveTackles"]; + this.OffensiveGuards = source["OffensiveGuards"]; + this.Centers = source["Centers"]; + this.OffensiveTackleType = source["OffensiveTackleType"]; + this.OffensiveGuardType = source["OffensiveGuardType"]; + this.CenterType = source["CenterType"]; + this.DefensiveTackles = source["DefensiveTackles"]; + this.DefensiveTackleType = source["DefensiveTackleType"]; + this.DefensiveEnds = source["DefensiveEnds"]; + this.DefensiveEndType = source["DefensiveEndType"]; + this.OutsideLinebackers = source["OutsideLinebackers"]; + this.OutsideLinebackerType = source["OutsideLinebackerType"]; + this.InsideLinebackers = source["InsideLinebackers"]; + this.InsideLinebackerType = source["InsideLinebackerType"]; + this.Cornerbacks = source["Cornerbacks"]; + this.CornerbackType = source["CornerbackType"]; + this.FreeSafeties = source["FreeSafeties"]; + this.FreeSafetyType = source["FreeSafetyType"]; + this.StrongSafeties = source["StrongSafeties"]; + this.StrongSafetyType = source["StrongSafetyType"]; + this.Kickers = source["Kickers"]; + this.KickerType = source["KickerType"]; + this.Punters = source["Punters"]; + this.PunterType = source["PunterType"]; + this.DraftPicks = source["DraftPicks"]; + this.DraftPickType = source["DraftPickType"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class NFLTradePreferencesDTO { + NFLTeamID: number; + Quarterbacks: boolean; + QuarterbackType: string; + Runningbacks: boolean; + RunningbackType: string; + Fullbacks: boolean; + FullbackType: string; + WideReceivers: boolean; + WideReceiverType: string; + TightEnds: boolean; + TightEndType: string; + OffensiveTackles: boolean; + OffensiveGuards: boolean; + Centers: boolean; + OffensiveTackleType: string; + OffensiveGuardType: string; + CenterType: string; + DefensiveTackles: boolean; + DefensiveTackleType: string; + DefensiveEnds: boolean; + DefensiveEndType: string; + OutsideLinebackers: boolean; + OutsideLinebackerType: string; + InsideLinebackers: boolean; + InsideLinebackerType: string; + Cornerbacks: boolean; + CornerbackType: string; + FreeSafeties: boolean; + FreeSafetyType: string; + StrongSafeties: boolean; + StrongSafetyType: string; + Kickers: boolean; + KickerType: string; + Punters: boolean; + PunterType: string; + DraftPicks: boolean; + DraftPickType: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.NFLTeamID = source["NFLTeamID"]; + this.Quarterbacks = source["Quarterbacks"]; + this.QuarterbackType = source["QuarterbackType"]; + this.Runningbacks = source["Runningbacks"]; + this.RunningbackType = source["RunningbackType"]; + this.Fullbacks = source["Fullbacks"]; + this.FullbackType = source["FullbackType"]; + this.WideReceivers = source["WideReceivers"]; + this.WideReceiverType = source["WideReceiverType"]; + this.TightEnds = source["TightEnds"]; + this.TightEndType = source["TightEndType"]; + this.OffensiveTackles = source["OffensiveTackles"]; + this.OffensiveGuards = source["OffensiveGuards"]; + this.Centers = source["Centers"]; + this.OffensiveTackleType = source["OffensiveTackleType"]; + this.OffensiveGuardType = source["OffensiveGuardType"]; + this.CenterType = source["CenterType"]; + this.DefensiveTackles = source["DefensiveTackles"]; + this.DefensiveTackleType = source["DefensiveTackleType"]; + this.DefensiveEnds = source["DefensiveEnds"]; + this.DefensiveEndType = source["DefensiveEndType"]; + this.OutsideLinebackers = source["OutsideLinebackers"]; + this.OutsideLinebackerType = source["OutsideLinebackerType"]; + this.InsideLinebackers = source["InsideLinebackers"]; + this.InsideLinebackerType = source["InsideLinebackerType"]; + this.Cornerbacks = source["Cornerbacks"]; + this.CornerbackType = source["CornerbackType"]; + this.FreeSafeties = source["FreeSafeties"]; + this.FreeSafetyType = source["FreeSafetyType"]; + this.StrongSafeties = source["StrongSafeties"]; + this.StrongSafetyType = source["StrongSafetyType"]; + this.Kickers = source["Kickers"]; + this.KickerType = source["KickerType"]; + this.Punters = source["Punters"]; + this.PunterType = source["PunterType"]; + this.DraftPicks = source["DraftPicks"]; + this.DraftPickType = source["DraftPickType"]; + } +} +export class NFLUser { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + Username: string; + TeamID: number; + TeamAbbreviation: string; + IsOwner: boolean; + IsManager: boolean; + IsHeadCoach: boolean; + IsAssistant: boolean; + TotalWins: number; + TotalLosses: number; + TotalTies: number; + ConferenceChampionships: number; + PlayoffWins: number; + PlayoffLosses: number; + SuperBowls: number; + SuperBowlLosses: number; + IsActive: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.Username = source["Username"]; + this.TeamID = source["TeamID"]; + this.TeamAbbreviation = source["TeamAbbreviation"]; + this.IsOwner = source["IsOwner"]; + this.IsManager = source["IsManager"]; + this.IsHeadCoach = source["IsHeadCoach"]; + this.IsAssistant = source["IsAssistant"]; + this.TotalWins = source["TotalWins"]; + this.TotalLosses = source["TotalLosses"]; + this.TotalTies = source["TotalTies"]; + this.ConferenceChampionships = source["ConferenceChampionships"]; + this.PlayoffWins = source["PlayoffWins"]; + this.PlayoffLosses = source["PlayoffLosses"]; + this.SuperBowls = source["SuperBowls"]; + this.SuperBowlLosses = source["SuperBowlLosses"]; + this.IsActive = source["IsActive"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + +export class PlayByPlayResponse { + PlayNumber: number; + HomeTeamID: number; + HomeTeamScore: number; + AwayTeamID: number; + AwayTeamScore: number; + Quarter: number; + Possession: string; + TimeRemaining: string; + Down: number; + Distance: number; + LineOfScrimmage: string; + PlayType: string; + PlayName: string; + OffensiveFormation: string; + DefensiveFormation: string; + PointOfAttack: string; + DefensiveTendency: string; + BlitzNumber: number; + LBCoverage: string; + CBCoverage: string; + SCoverage: string; + QBPlayerID: number; + BallCarrierID: number; + Tackler1ID: number; + Tackler2ID: number; + PresureID: number; + ResultYards: number; + Result: string; + StreamResult: string[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayNumber = source["PlayNumber"]; + this.HomeTeamID = source["HomeTeamID"]; + this.HomeTeamScore = source["HomeTeamScore"]; + this.AwayTeamID = source["AwayTeamID"]; + this.AwayTeamScore = source["AwayTeamScore"]; + this.Quarter = source["Quarter"]; + this.Possession = source["Possession"]; + this.TimeRemaining = source["TimeRemaining"]; + this.Down = source["Down"]; + this.Distance = source["Distance"]; + this.LineOfScrimmage = source["LineOfScrimmage"]; + this.PlayType = source["PlayType"]; + this.PlayName = source["PlayName"]; + this.OffensiveFormation = source["OffensiveFormation"]; + this.DefensiveFormation = source["DefensiveFormation"]; + this.PointOfAttack = source["PointOfAttack"]; + this.DefensiveTendency = source["DefensiveTendency"]; + this.BlitzNumber = source["BlitzNumber"]; + this.LBCoverage = source["LBCoverage"]; + this.CBCoverage = source["CBCoverage"]; + this.SCoverage = source["SCoverage"]; + this.QBPlayerID = source["QBPlayerID"]; + this.BallCarrierID = source["BallCarrierID"]; + this.Tackler1ID = source["Tackler1ID"]; + this.Tackler2ID = source["Tackler2ID"]; + this.PresureID = source["PresureID"]; + this.ResultYards = source["ResultYards"]; + this.Result = source["Result"]; + this.StreamResult = source["StreamResult"]; + } +} +export class ScoreBoard { + Q1Home: number; + Q2Home: number; + Q3Home: number; + Q4Home: number; + OT1Home: number; + OT2Home: number; + OT3Home: number; + OT4Home: number; + Q1Away: number; + Q2Away: number; + Q3Away: number; + Q4Away: number; + OT1Away: number; + OT2Away: number; + OT3Away: number; + OT4Away: number; + HomeOffensiveScheme: string; + HomeDefensiveScheme: string; + AwayOffensiveScheme: string; + AwayDefensiveScheme: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.Q1Home = source["Q1Home"]; + this.Q2Home = source["Q2Home"]; + this.Q3Home = source["Q3Home"]; + this.Q4Home = source["Q4Home"]; + this.OT1Home = source["OT1Home"]; + this.OT2Home = source["OT2Home"]; + this.OT3Home = source["OT3Home"]; + this.OT4Home = source["OT4Home"]; + this.Q1Away = source["Q1Away"]; + this.Q2Away = source["Q2Away"]; + this.Q3Away = source["Q3Away"]; + this.Q4Away = source["Q4Away"]; + this.OT1Away = source["OT1Away"]; + this.OT2Away = source["OT2Away"]; + this.OT3Away = source["OT3Away"]; + this.OT4Away = source["OT4Away"]; + this.HomeOffensiveScheme = source["HomeOffensiveScheme"]; + this.HomeDefensiveScheme = source["HomeDefensiveScheme"]; + this.AwayOffensiveScheme = source["AwayOffensiveScheme"]; + this.AwayDefensiveScheme = source["AwayDefensiveScheme"]; + } +} +export class GameResultsPlayer { + ID: number; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + TeamAbbr: string; + League: string; + Year: number; + PassingYards: number; + PassAttempts: number; + PassCompletions: number; + PassingTDs: number; + Interceptions: number; + LongestPass: number; + Sacks: number; + RushAttempts: number; + RushingYards: number; + RushingTDs: number; + Fumbles: number; + LongestRush: number; + Targets: number; + Catches: number; + ReceivingYards: number; + ReceivingTDs: number; + LongestReception: number; + SoloTackles: number; + AssistedTackles: number; + TacklesForLoss: number; + SacksMade: number; + ForcedFumbles: number; + RecoveredFumbles: number; + PassDeflections: number; + InterceptionsCaught: number; + Safeties: number; + DefensiveTDs: number; + FGMade: number; + FGAttempts: number; + LongestFG: number; + ExtraPointsMade: number; + ExtraPointsAttempted: number; + KickoffTouchbacks: number; + Punts: number; + PuntTouchbacks: number; + PuntsInside20: number; + KickReturns: number; + KickReturnTDs: number; + KickReturnYards: number; + PuntReturns: number; + PuntReturnTDs: number; + PuntReturnYards: number; + STSoloTackles: number; + STAssistedTackles: number; + PuntsBlocked: number; + FGBlocked: number; + Snaps: number; + Pancakes: number; + SacksAllowed: number; + PlayedGame: number; + StartedGame: number; + WasInjured: boolean; + WeeksOfRecovery: number; + InjuryType: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.TeamAbbr = source["TeamAbbr"]; + this.League = source["League"]; + this.Year = source["Year"]; + this.PassingYards = source["PassingYards"]; + this.PassAttempts = source["PassAttempts"]; + this.PassCompletions = source["PassCompletions"]; + this.PassingTDs = source["PassingTDs"]; + this.Interceptions = source["Interceptions"]; + this.LongestPass = source["LongestPass"]; + this.Sacks = source["Sacks"]; + this.RushAttempts = source["RushAttempts"]; + this.RushingYards = source["RushingYards"]; + this.RushingTDs = source["RushingTDs"]; + this.Fumbles = source["Fumbles"]; + this.LongestRush = source["LongestRush"]; + this.Targets = source["Targets"]; + this.Catches = source["Catches"]; + this.ReceivingYards = source["ReceivingYards"]; + this.ReceivingTDs = source["ReceivingTDs"]; + this.LongestReception = source["LongestReception"]; + this.SoloTackles = source["SoloTackles"]; + this.AssistedTackles = source["AssistedTackles"]; + this.TacklesForLoss = source["TacklesForLoss"]; + this.SacksMade = source["SacksMade"]; + this.ForcedFumbles = source["ForcedFumbles"]; + this.RecoveredFumbles = source["RecoveredFumbles"]; + this.PassDeflections = source["PassDeflections"]; + this.InterceptionsCaught = source["InterceptionsCaught"]; + this.Safeties = source["Safeties"]; + this.DefensiveTDs = source["DefensiveTDs"]; + this.FGMade = source["FGMade"]; + this.FGAttempts = source["FGAttempts"]; + this.LongestFG = source["LongestFG"]; + this.ExtraPointsMade = source["ExtraPointsMade"]; + this.ExtraPointsAttempted = source["ExtraPointsAttempted"]; + this.KickoffTouchbacks = source["KickoffTouchbacks"]; + this.Punts = source["Punts"]; + this.PuntTouchbacks = source["PuntTouchbacks"]; + this.PuntsInside20 = source["PuntsInside20"]; + this.KickReturns = source["KickReturns"]; + this.KickReturnTDs = source["KickReturnTDs"]; + this.KickReturnYards = source["KickReturnYards"]; + this.PuntReturns = source["PuntReturns"]; + this.PuntReturnTDs = source["PuntReturnTDs"]; + this.PuntReturnYards = source["PuntReturnYards"]; + this.STSoloTackles = source["STSoloTackles"]; + this.STAssistedTackles = source["STAssistedTackles"]; + this.PuntsBlocked = source["PuntsBlocked"]; + this.FGBlocked = source["FGBlocked"]; + this.Snaps = source["Snaps"]; + this.Pancakes = source["Pancakes"]; + this.SacksAllowed = source["SacksAllowed"]; + this.PlayedGame = source["PlayedGame"]; + this.StartedGame = source["StartedGame"]; + this.WasInjured = source["WasInjured"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryType = source["InjuryType"]; + } +} +export class GameResultsResponse { + HomePlayers: GameResultsPlayer[]; + AwayPlayers: GameResultsPlayer[]; + PlayByPlays: PlayByPlayResponse[]; + Score: ScoreBoard; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.HomePlayers = this.convertValues(source["HomePlayers"], GameResultsPlayer); + this.AwayPlayers = this.convertValues(source["AwayPlayers"], GameResultsPlayer); + this.PlayByPlays = this.convertValues(source["PlayByPlays"], PlayByPlayResponse); + this.Score = this.convertValues(source["Score"], ScoreBoard); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + +export class TopPlayer { + PlayerID: number; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + PositionTwo: string; + ArchetypeTwo: string; + OverallGrade: string; + Overall: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.PlayerID = source["PlayerID"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.OverallGrade = source["OverallGrade"]; + this.Overall = source["Overall"]; + } +} +export class TeamRecordResponse { + OverallWins: number; + OverallLosses: number; + CurrentSeasonWins: number; + CurrentSeasonLosses: number; + BowlWins: number; + BowlLosses: number; + ConferenceChampionships: string[]; + DivisionTitles: string[]; + NationalChampionships: string[]; + TopPlayers: TopPlayer[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.OverallWins = source["OverallWins"]; + this.OverallLosses = source["OverallLosses"]; + this.CurrentSeasonWins = source["CurrentSeasonWins"]; + this.CurrentSeasonLosses = source["CurrentSeasonLosses"]; + this.BowlWins = source["BowlWins"]; + this.BowlLosses = source["BowlLosses"]; + this.ConferenceChampionships = source["ConferenceChampionships"]; + this.DivisionTitles = source["DivisionTitles"]; + this.NationalChampionships = source["NationalChampionships"]; + this.TopPlayers = this.convertValues(source["TopPlayers"], TopPlayer); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + +export class InboxResponse { + CFBNotifications: Notification[]; + NFLNotifications: Notification[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.CFBNotifications = this.convertValues(source["CFBNotifications"], Notification); + this.NFLNotifications = this.convertValues(source["NFLNotifications"], Notification); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} + + +export class CollusionDto { + WeekID: number; + SeasonID: number; + Message: string; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.WeekID = source["WeekID"]; + this.SeasonID = source["SeasonID"]; + this.Message = source["Message"]; + } +} +export class Timestamp { + ID: number; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; + CollegeWeekID: number; + CollegeWeek: number; + CollegeSeasonID: number; + Season: number; + NFLSeasonID: number; + NFLWeekID: number; + NFLWeek: number; + CFBSpringGames: boolean; + ThursdayGames: boolean; + FridayGames: boolean; + SaturdayMorning: boolean; + SaturdayNoon: boolean; + SaturdayEvening: boolean; + SaturdayNight: boolean; + CollegePollRan: boolean; + NFLThursday: boolean; + NFLSundayNoon: boolean; + NFLSundayAfternoon: boolean; + NFLSundayEvening: boolean; + NFLMondayEvening: boolean; + NFLTradingAllowed: boolean; + NFLPreseason: boolean; + RecruitingEfficiencySynced: boolean; + RecruitingSynced: boolean; + GMActionsCompleted: boolean; + IsOffSeason: boolean; + IsNFLOffSeason: boolean; + IsRecruitingLocked: boolean; + AIDepthchartsSync: boolean; + AIRecruitingBoardsSynced: boolean; + IsFreeAgencyLocked: boolean; + IsDraftTime: boolean; + RunGames: boolean; + Y1Capspace: number; + Y2Capspace: number; + Y3Capspace: number; + Y4Capspace: number; + Y5Capspace: number; + DeadCapLimit: number; + FreeAgencyRound: number; + RunCron: boolean; + IsTesting: boolean; + CollegeSeasonOver: boolean; + NFLSeasonOver: boolean; + CrootsGenerated: boolean; + ProgressedCollegePlayers: boolean; + ProgressedProfessionalPlayers: boolean; + TransferPortalPhase: number; + TransferPortalRound: number; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); + this.CollegeWeekID = source["CollegeWeekID"]; + this.CollegeWeek = source["CollegeWeek"]; + this.CollegeSeasonID = source["CollegeSeasonID"]; + this.Season = source["Season"]; + this.NFLSeasonID = source["NFLSeasonID"]; + this.NFLWeekID = source["NFLWeekID"]; + this.NFLWeek = source["NFLWeek"]; + this.CFBSpringGames = source["CFBSpringGames"]; + this.ThursdayGames = source["ThursdayGames"]; + this.FridayGames = source["FridayGames"]; + this.SaturdayMorning = source["SaturdayMorning"]; + this.SaturdayNoon = source["SaturdayNoon"]; + this.SaturdayEvening = source["SaturdayEvening"]; + this.SaturdayNight = source["SaturdayNight"]; + this.CollegePollRan = source["CollegePollRan"]; + this.NFLThursday = source["NFLThursday"]; + this.NFLSundayNoon = source["NFLSundayNoon"]; + this.NFLSundayAfternoon = source["NFLSundayAfternoon"]; + this.NFLSundayEvening = source["NFLSundayEvening"]; + this.NFLMondayEvening = source["NFLMondayEvening"]; + this.NFLTradingAllowed = source["NFLTradingAllowed"]; + this.NFLPreseason = source["NFLPreseason"]; + this.RecruitingEfficiencySynced = source["RecruitingEfficiencySynced"]; + this.RecruitingSynced = source["RecruitingSynced"]; + this.GMActionsCompleted = source["GMActionsCompleted"]; + this.IsOffSeason = source["IsOffSeason"]; + this.IsNFLOffSeason = source["IsNFLOffSeason"]; + this.IsRecruitingLocked = source["IsRecruitingLocked"]; + this.AIDepthchartsSync = source["AIDepthchartsSync"]; + this.AIRecruitingBoardsSynced = source["AIRecruitingBoardsSynced"]; + this.IsFreeAgencyLocked = source["IsFreeAgencyLocked"]; + this.IsDraftTime = source["IsDraftTime"]; + this.RunGames = source["RunGames"]; + this.Y1Capspace = source["Y1Capspace"]; + this.Y2Capspace = source["Y2Capspace"]; + this.Y3Capspace = source["Y3Capspace"]; + this.Y4Capspace = source["Y4Capspace"]; + this.Y5Capspace = source["Y5Capspace"]; + this.DeadCapLimit = source["DeadCapLimit"]; + this.FreeAgencyRound = source["FreeAgencyRound"]; + this.RunCron = source["RunCron"]; + this.IsTesting = source["IsTesting"]; + this.CollegeSeasonOver = source["CollegeSeasonOver"]; + this.NFLSeasonOver = source["NFLSeasonOver"]; + this.CrootsGenerated = source["CrootsGenerated"]; + this.ProgressedCollegePlayers = source["ProgressedCollegePlayers"]; + this.ProgressedProfessionalPlayers = source["ProgressedProfessionalPlayers"]; + this.TransferPortalPhase = source["TransferPortalPhase"]; + this.TransferPortalRound = source["TransferPortalRound"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} \ No newline at end of file diff --git a/main.go b/main.go index 32f2baf..49e2e40 100644 --- a/main.go +++ b/main.go @@ -93,7 +93,7 @@ func handleRequests() http.Handler { apiRouter.HandleFunc("/admin/ai/sync/boards", controller.SyncAIBoards).Methods("GET") apiRouter.HandleFunc("/admin/fix/affinities", controller.RecalibrateCrootProfiles).Methods("GET") apiRouter.HandleFunc("/admin/run/the/games/", controller.RunTheGames).Methods("GET") - // apiRouter.HandleFunc("/admin/overall/progressions/next/season", controller.ProgressToNextSeason).Methods("GET") + apiRouter.HandleFunc("/admin/overall/progressions/next/season", controller.ProgressToNextSeason).Methods("GET") // apiRouter.HandleFunc("/admin/overall/progressions/nfl", controller.ProgressNFL).Methods("GET") apiRouter.HandleFunc("/admin/trades/accept/sync/{proposalID}", controller.SyncAcceptedTrade).Methods("GET") apiRouter.HandleFunc("/admin/trades/veto/sync/{proposalID}", controller.VetoAcceptedTrade).Methods("GET") @@ -125,6 +125,7 @@ func handleRequests() http.Handler { // apiRouter.HandleFunc("/spending/count/fix", controller.FixSpendingCount).Methods("GET") // Free Agency Controls + // apiRouter.HandleFunc("/nfl/extensions/sync", controller.SyncExtensions).Methods("GET") apiRouter.HandleFunc("/nfl/extension/create/offer", controller.CreateExtensionOffer).Methods("POST") apiRouter.HandleFunc("/nfl/extension/cancel/offer", controller.CancelExtensionOffer).Methods("POST") apiRouter.HandleFunc("/nfl/freeagency/create/offer", controller.CreateFreeAgencyOffer).Methods("POST") @@ -193,6 +194,7 @@ func handleRequests() http.Handler { // apiRouter.HandleFunc("/import/simcfb/college/standings", controller.CreateCollegeStandings).Methods("GET") // apiRouter.HandleFunc("/import/simcfb/2021/stats", controller.Import2021CFBStats).Methods("GET") // apiRouter.HandleFunc("/fix/simcfb/nfl/dts", controller.FixCollegeDTOVRs).Methods("GET") + // apiRouter.HandleFunc("/fix/simcfb/ath/", controller.FixATHProgressions).Methods("GET") // apiRouter.HandleFunc("/assign/team/grades", controller.ImportTeamGrades).Methods("GET") apiRouter.HandleFunc("/run/predraft/events", controller.RunPreDraftEvents).Methods("GET") @@ -231,7 +233,7 @@ func handleRequests() http.Handler { // Rankings Controls // apiRouter.HandleFunc("/simfba/cfb/croots/generate/", controller.GenerateRecruits).Methods("GET") - // apiRouter.HandleFunc("/rankings/assign/all/croots/", controller.AssignAllRecruitRanks).Methods("GET") + apiRouter.HandleFunc("/rankings/assign/all/croots/", controller.AssignAllRecruitRanks).Methods("GET") // Recruiting Controls apiRouter.HandleFunc("/recruiting/overview/dashboard/{teamID}", controller.GetRecruitingProfileForDashboardByTeamID).Methods("GET") diff --git a/managers/AdminManager.go b/managers/AdminManager.go index 2b35651..d7f40f6 100644 --- a/managers/AdminManager.go +++ b/managers/AdminManager.go @@ -595,6 +595,15 @@ func CreateCollegeSeason() { } +func GenerateOffseasonData() { + + // Create Standings Records for College + GenerateNewSeasonStandings() + + // Generate Next Croot Class + GenerateCroots() +} + // Season Funcs func MoveUpInOffseasonFreeAgency() { db := dbprovider.GetInstance().GetDB() diff --git a/managers/BootstrapManager.go b/managers/BootstrapManager.go index 7ff3e34..002c484 100644 --- a/managers/BootstrapManager.go +++ b/managers/BootstrapManager.go @@ -7,6 +7,7 @@ import ( "sync" "github.com/CalebRose/SimFBA/dbprovider" + "github.com/CalebRose/SimFBA/models" "github.com/CalebRose/SimFBA/repository" "github.com/CalebRose/SimFBA/structs" "github.com/CalebRose/SimFBA/util" @@ -29,7 +30,6 @@ type BootstrapData struct { ProNotifications []structs.Notification NFLGameplan structs.NFLGameplan NFLDepthChart structs.NFLDepthChart - FaceData map[uint]structs.FaceDataResponse } type BootstrapDataTwo struct { @@ -56,6 +56,7 @@ type BootstrapDataThree struct { WaiverWireOffers []structs.NFLWaiverOffer FreeAgents []structs.NFLPlayer WaiverPlayers []structs.NFLPlayer + NFLDraftees []models.NFLDraftee ProNews []structs.NewsLog NFLDepthChartMap map[uint]structs.NFLDepthChart ContractMap map[uint]structs.NFLContract @@ -126,7 +127,11 @@ func GetFirstBootstrapData(collegeID, proID string) BootstrapData { wg.Add(5) go func() { defer wg.Done() + mu.Lock() collegeTeam = GetTeamByTeamID(collegeID) + collegeTeam.UpdateLatestInstance() + repository.SaveCFBTeam(collegeTeam, dbprovider.GetInstance().GetDB()) + mu.Unlock() }() go func() { defer wg.Done() @@ -158,10 +163,14 @@ func GetFirstBootstrapData(collegeID, proID string) BootstrapData { }() } if len(proID) > 0 && proID != "0" { - wg.Add(3) + wg.Add(4) go func() { defer wg.Done() + mu.Lock() proTeam = GetNFLTeamByTeamID(proID) + proTeam.UpdateLatestInstance() + repository.SaveNFLTeam(proTeam, dbprovider.GetInstance().GetDB()) + mu.Unlock() }() go func() { @@ -172,6 +181,10 @@ func GetFirstBootstrapData(collegeID, proID string) BootstrapData { defer wg.Done() proGameplan = GetNFLGameplanByTeamID(proID) }() + go func() { + defer wg.Done() + proDepthChart = GetNFLDepthchartByTeamID(proID) + }() } wg.Wait() @@ -334,6 +347,7 @@ func GetThirdBootstrapData(collegeID, proID string) BootstrapDataThree { waiverPlayers []structs.NFLPlayer freeAgentoffers []structs.FreeAgencyOffer waiverOffers []structs.NFLWaiverOffer + nflDraftees []models.NFLDraftee ) if len(collegeID) > 0 && collegeID != "0" { @@ -355,7 +369,7 @@ func GetThirdBootstrapData(collegeID, proID string) BootstrapDataThree { } if len(proID) > 0 && proID != "0" { - wg.Add(8) + wg.Add(9) go func() { defer wg.Done() @@ -398,6 +412,11 @@ func GetThirdBootstrapData(collegeID, proID string) BootstrapDataThree { waiverPlayers = GetAllWaiverWirePlayers() }() + go func() { + defer wg.Done() + nflDraftees = GetAllNFLDraftees() + }() + } wg.Add(1) @@ -421,6 +440,7 @@ func GetThirdBootstrapData(collegeID, proID string) BootstrapDataThree { FreeAgents: freeAgents, WaiverPlayers: waiverPlayers, FaceData: faceDataMap, + NFLDraftees: nflDraftees, } } diff --git a/managers/BootstrapManager_easyjson.go b/managers/BootstrapManager_easyjson.go index 7215538..d23155f 100644 --- a/managers/BootstrapManager_easyjson.go +++ b/managers/BootstrapManager_easyjson.go @@ -5,6 +5,7 @@ package managers import ( sql "database/sql" json "encoding/json" + models "github.com/CalebRose/SimFBA/models" structs "github.com/CalebRose/SimFBA/structs" easyjson "github.com/mailru/easyjson" jlexer "github.com/mailru/easyjson/jlexer" @@ -5116,8 +5117,12 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs17(in *jlexer.Lexer, o out.BonusPercentage = float64(in.Float64()) case "AAV": out.AAV = float64(in.Float64()) + case "Syncs": + out.Syncs = uint8(in.Uint8()) case "IsActive": out.IsActive = bool(in.Bool()) + case "IsRejected": + out.IsRejected = bool(in.Bool()) case "ID": out.ID = uint(in.Uint()) case "CreatedAt": @@ -5249,11 +5254,21 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs17(out *jwriter.Writer out.RawString(prefix) out.Float64(float64(in.AAV)) } + { + const prefix string = ",\"Syncs\":" + out.RawString(prefix) + out.Uint8(uint8(in.Syncs)) + } { const prefix string = ",\"IsActive\":" out.RawString(prefix) out.Bool(bool(in.IsActive)) } + { + const prefix string = ",\"IsRejected\":" + out.RawString(prefix) + out.Bool(bool(in.IsRejected)) + } { const prefix string = ",\"ID\":" out.RawString(prefix) @@ -9394,6 +9409,29 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o } in.Delim(']') } + case "NFLDraftees": + if in.IsNull() { + in.Skip() + out.NFLDraftees = nil + } else { + in.Delim('[') + if out.NFLDraftees == nil { + if !in.IsDelim(']') { + out.NFLDraftees = make([]models.NFLDraftee, 0, 0) + } else { + out.NFLDraftees = []models.NFLDraftee{} + } + } else { + out.NFLDraftees = (out.NFLDraftees)[:0] + } + for !in.IsDelim(']') { + var v88 models.NFLDraftee + easyjson83226b63DecodeGithubComCalebRoseSimFBAModels(in, &v88) + out.NFLDraftees = append(out.NFLDraftees, v88) + in.WantComma() + } + in.Delim(']') + } case "ProNews": if in.IsNull() { in.Skip() @@ -9410,9 +9448,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o out.ProNews = (out.ProNews)[:0] } for !in.IsDelim(']') { - var v88 structs.NewsLog - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs8(in, &v88) - out.ProNews = append(out.ProNews, v88) + var v89 structs.NewsLog + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs8(in, &v89) + out.ProNews = append(out.ProNews, v89) in.WantComma() } in.Delim(']') @@ -9426,9 +9464,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o for !in.IsDelim('}') { key := uint(in.UintStr()) in.WantColon() - var v89 structs.NFLDepthChart - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs25(in, &v89) - (out.NFLDepthChartMap)[key] = v89 + var v90 structs.NFLDepthChart + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs25(in, &v90) + (out.NFLDepthChartMap)[key] = v90 in.WantComma() } in.Delim('}') @@ -9442,9 +9480,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o for !in.IsDelim('}') { key := uint(in.UintStr()) in.WantColon() - var v90 structs.NFLContract - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs16(in, &v90) - (out.ContractMap)[key] = v90 + var v91 structs.NFLContract + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs16(in, &v91) + (out.ContractMap)[key] = v91 in.WantComma() } in.Delim('}') @@ -9458,9 +9496,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o for !in.IsDelim('}') { key := uint(in.UintStr()) in.WantColon() - var v91 structs.NFLExtensionOffer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs19(in, &v91) - (out.ExtensionMap)[key] = v91 + var v92 structs.NFLExtensionOffer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs19(in, &v92) + (out.ExtensionMap)[key] = v92 in.WantComma() } in.Delim('}') @@ -9474,9 +9512,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers2(in *jlexer.Lexer, o for !in.IsDelim('}') { key := uint(in.UintStr()) in.WantColon() - var v92 structs.FaceDataResponse - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs26(in, &v92) - (out.FaceData)[key] = v92 + var v93 structs.FaceDataResponse + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs26(in, &v93) + (out.FaceData)[key] = v93 in.WantComma() } in.Delim('}') @@ -9502,11 +9540,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v93, v94 := range in.Recruits { - if v93 > 0 { + for v94, v95 := range in.Recruits { + if v94 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs23(out, v94) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs23(out, v95) } out.RawByte(']') } @@ -9518,11 +9556,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v95, v96 := range in.RecruitProfiles { - if v95 > 0 { + for v96, v97 := range in.RecruitProfiles { + if v96 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs20(out, v96) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs20(out, v97) } out.RawByte(']') } @@ -9534,16 +9572,16 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v97First := true - for v97Name, v97Value := range in.CollegeDepthChartMap { - if v97First { - v97First = false + v98First := true + for v98Name, v98Value := range in.CollegeDepthChartMap { + if v98First { + v98First = false } else { out.RawByte(',') } - out.UintStr(uint(v97Name)) + out.UintStr(uint(v98Name)) out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs24(out, v97Value) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs24(out, v98Value) } out.RawByte('}') } @@ -9555,11 +9593,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v98, v99 := range in.FreeAgentOffers { - if v98 > 0 { + for v99, v100 := range in.FreeAgentOffers { + if v99 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs17(out, v99) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs17(out, v100) } out.RawByte(']') } @@ -9571,11 +9609,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v100, v101 := range in.WaiverWireOffers { - if v100 > 0 { + for v101, v102 := range in.WaiverWireOffers { + if v101 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs18(out, v101) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs18(out, v102) } out.RawByte(']') } @@ -9587,11 +9625,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v102, v103 := range in.FreeAgents { - if v102 > 0 { + for v103, v104 := range in.FreeAgents { + if v103 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, v103) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, v104) } out.RawByte(']') } @@ -9603,11 +9641,27 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v104, v105 := range in.WaiverPlayers { - if v104 > 0 { + for v105, v106 := range in.WaiverPlayers { + if v105 > 0 { + out.RawByte(',') + } + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, v106) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"NFLDraftees\":" + out.RawString(prefix) + if in.NFLDraftees == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v107, v108 := range in.NFLDraftees { + if v107 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, v105) + easyjson83226b63EncodeGithubComCalebRoseSimFBAModels(out, v108) } out.RawByte(']') } @@ -9619,11 +9673,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v106, v107 := range in.ProNews { - if v106 > 0 { + for v109, v110 := range in.ProNews { + if v109 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs8(out, v107) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs8(out, v110) } out.RawByte(']') } @@ -9635,16 +9689,16 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v108First := true - for v108Name, v108Value := range in.NFLDepthChartMap { - if v108First { - v108First = false + v111First := true + for v111Name, v111Value := range in.NFLDepthChartMap { + if v111First { + v111First = false } else { out.RawByte(',') } - out.UintStr(uint(v108Name)) + out.UintStr(uint(v111Name)) out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs25(out, v108Value) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs25(out, v111Value) } out.RawByte('}') } @@ -9656,16 +9710,16 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v109First := true - for v109Name, v109Value := range in.ContractMap { - if v109First { - v109First = false + v112First := true + for v112Name, v112Value := range in.ContractMap { + if v112First { + v112First = false } else { out.RawByte(',') } - out.UintStr(uint(v109Name)) + out.UintStr(uint(v112Name)) out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs16(out, v109Value) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs16(out, v112Value) } out.RawByte('}') } @@ -9677,16 +9731,16 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v110First := true - for v110Name, v110Value := range in.ExtensionMap { - if v110First { - v110First = false + v113First := true + for v113Name, v113Value := range in.ExtensionMap { + if v113First { + v113First = false } else { out.RawByte(',') } - out.UintStr(uint(v110Name)) + out.UintStr(uint(v113Name)) out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs19(out, v110Value) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs19(out, v113Value) } out.RawByte('}') } @@ -9698,16 +9752,16 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers2(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v111First := true - for v111Name, v111Value := range in.FaceData { - if v111First { - v111First = false + v114First := true + for v114Name, v114Value := range in.FaceData { + if v114First { + v114First = false } else { out.RawByte(',') } - out.UintStr(uint(v111Name)) + out.UintStr(uint(v114Name)) out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs26(out, v111Value) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs26(out, v114Value) } out.RawByte('}') } @@ -10020,9 +10074,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs25(in *jlexer.Lexer, o out.DepthChartPlayers = (out.DepthChartPlayers)[:0] } for !in.IsDelim(']') { - var v112 structs.NFLDepthChartPosition - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs27(in, &v112) - out.DepthChartPlayers = append(out.DepthChartPlayers, v112) + var v115 structs.NFLDepthChartPosition + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs27(in, &v115) + out.DepthChartPlayers = append(out.DepthChartPlayers, v115) in.WantComma() } in.Delim(']') @@ -10054,172 +10108,883 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs25(in *jlexer.Lexer, o } in.WantComma() } - in.Delim('}') - if isTopLevel { - in.Consumed() + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs25(out *jwriter.Writer, in structs.NFLDepthChart) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"TeamID\":" + out.RawString(prefix[1:]) + out.Int(int(in.TeamID)) + } + { + const prefix string = ",\"DepthChartPlayers\":" + out.RawString(prefix) + if in.DepthChartPlayers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v116, v117 := range in.DepthChartPlayers { + if v116 > 0 { + out.RawByte(',') + } + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs27(out, v117) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"ID\":" + out.RawString(prefix) + out.Uint(uint(in.ID)) + } + { + const prefix string = ",\"CreatedAt\":" + out.RawString(prefix) + out.Raw((in.CreatedAt).MarshalJSON()) + } + { + const prefix string = ",\"UpdatedAt\":" + out.RawString(prefix) + out.Raw((in.UpdatedAt).MarshalJSON()) + } + { + const prefix string = ",\"DeletedAt\":" + out.RawString(prefix) + if in.DeletedAt == nil { + out.RawString("null") + } else { + out.Raw((*in.DeletedAt).MarshalJSON()) + } + } + out.RawByte('}') +} +func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs27(in *jlexer.Lexer, out *structs.NFLDepthChartPosition) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeFieldName(false) + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "DepthChartID": + out.DepthChartID = uint(in.Uint()) + case "PlayerID": + out.PlayerID = uint(in.Uint()) + case "Position": + out.Position = string(in.String()) + case "PositionLevel": + out.PositionLevel = string(in.String()) + case "FirstName": + out.FirstName = string(in.String()) + case "LastName": + out.LastName = string(in.String()) + case "OriginalPosition": + out.OriginalPosition = string(in.String()) + case "NFLPlayer": + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs13(in, &out.NFLPlayer) + case "ID": + out.ID = uint(in.Uint()) + case "CreatedAt": + if data := in.Raw(); in.Ok() { + in.AddError((out.CreatedAt).UnmarshalJSON(data)) + } + case "UpdatedAt": + if data := in.Raw(); in.Ok() { + in.AddError((out.UpdatedAt).UnmarshalJSON(data)) + } + case "DeletedAt": + if in.IsNull() { + in.Skip() + out.DeletedAt = nil + } else { + if out.DeletedAt == nil { + out.DeletedAt = new(time.Time) + } + if data := in.Raw(); in.Ok() { + in.AddError((*out.DeletedAt).UnmarshalJSON(data)) + } + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs27(out *jwriter.Writer, in structs.NFLDepthChartPosition) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"DepthChartID\":" + out.RawString(prefix[1:]) + out.Uint(uint(in.DepthChartID)) + } + { + const prefix string = ",\"PlayerID\":" + out.RawString(prefix) + out.Uint(uint(in.PlayerID)) + } + { + const prefix string = ",\"Position\":" + out.RawString(prefix) + out.String(string(in.Position)) + } + { + const prefix string = ",\"PositionLevel\":" + out.RawString(prefix) + out.String(string(in.PositionLevel)) + } + { + const prefix string = ",\"FirstName\":" + out.RawString(prefix) + out.String(string(in.FirstName)) + } + { + const prefix string = ",\"LastName\":" + out.RawString(prefix) + out.String(string(in.LastName)) + } + { + const prefix string = ",\"OriginalPosition\":" + out.RawString(prefix) + out.String(string(in.OriginalPosition)) + } + { + const prefix string = ",\"NFLPlayer\":" + out.RawString(prefix) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, in.NFLPlayer) + } + { + const prefix string = ",\"ID\":" + out.RawString(prefix) + out.Uint(uint(in.ID)) + } + { + const prefix string = ",\"CreatedAt\":" + out.RawString(prefix) + out.Raw((in.CreatedAt).MarshalJSON()) + } + { + const prefix string = ",\"UpdatedAt\":" + out.RawString(prefix) + out.Raw((in.UpdatedAt).MarshalJSON()) + } + { + const prefix string = ",\"DeletedAt\":" + out.RawString(prefix) + if in.DeletedAt == nil { + out.RawString("null") + } else { + out.Raw((*in.DeletedAt).MarshalJSON()) + } + } + out.RawByte('}') +} +func easyjson83226b63DecodeGithubComCalebRoseSimFBAModels(in *jlexer.Lexer, out *models.NFLDraftee) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeFieldName(false) + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "PlayerID": + out.PlayerID = int(in.Int()) + case "HighSchool": + out.HighSchool = string(in.String()) + case "CollegeID": + out.CollegeID = uint(in.Uint()) + case "College": + out.College = string(in.String()) + case "DraftedTeamID": + out.DraftedTeamID = uint(in.Uint()) + case "DraftedTeam": + out.DraftedTeam = string(in.String()) + case "DraftedRound": + out.DraftedRound = uint(in.Uint()) + case "DraftPickID": + out.DraftPickID = uint(in.Uint()) + case "DraftedPick": + out.DraftedPick = uint(in.Uint()) + case "City": + out.City = string(in.String()) + case "State": + out.State = string(in.String()) + case "OverallGrade": + out.OverallGrade = string(in.String()) + case "StaminaGrade": + out.StaminaGrade = string(in.String()) + case "InjuryGrade": + out.InjuryGrade = string(in.String()) + case "FootballIQGrade": + out.FootballIQGrade = string(in.String()) + case "SpeedGrade": + out.SpeedGrade = string(in.String()) + case "CarryingGrade": + out.CarryingGrade = string(in.String()) + case "AgilityGrade": + out.AgilityGrade = string(in.String()) + case "CatchingGrade": + out.CatchingGrade = string(in.String()) + case "RouteRunningGrade": + out.RouteRunningGrade = string(in.String()) + case "ZoneCoverageGrade": + out.ZoneCoverageGrade = string(in.String()) + case "ManCoverageGrade": + out.ManCoverageGrade = string(in.String()) + case "StrengthGrade": + out.StrengthGrade = string(in.String()) + case "TackleGrade": + out.TackleGrade = string(in.String()) + case "PassBlockGrade": + out.PassBlockGrade = string(in.String()) + case "RunBlockGrade": + out.RunBlockGrade = string(in.String()) + case "PassRushGrade": + out.PassRushGrade = string(in.String()) + case "RunDefenseGrade": + out.RunDefenseGrade = string(in.String()) + case "ThrowPowerGrade": + out.ThrowPowerGrade = string(in.String()) + case "ThrowAccuracyGrade": + out.ThrowAccuracyGrade = string(in.String()) + case "KickAccuracyGrade": + out.KickAccuracyGrade = string(in.String()) + case "KickPowerGrade": + out.KickPowerGrade = string(in.String()) + case "PuntAccuracyGrade": + out.PuntAccuracyGrade = string(in.String()) + case "PuntPowerGrade": + out.PuntPowerGrade = string(in.String()) + case "BoomOrBust": + out.BoomOrBust = bool(in.Bool()) + case "BoomOrBustStatus": + out.BoomOrBustStatus = string(in.String()) + case "FirstName": + out.FirstName = string(in.String()) + case "LastName": + out.LastName = string(in.String()) + case "Position": + out.Position = string(in.String()) + case "Archetype": + out.Archetype = string(in.String()) + case "PreviousTeamID": + out.PreviousTeamID = uint(in.Uint()) + case "PreviousTeam": + out.PreviousTeam = string(in.String()) + case "Height": + out.Height = int(in.Int()) + case "Weight": + out.Weight = int(in.Int()) + case "Age": + out.Age = int(in.Int()) + case "Stars": + out.Stars = int(in.Int()) + case "Overall": + out.Overall = int(in.Int()) + case "Stamina": + out.Stamina = int(in.Int()) + case "Injury": + out.Injury = int(in.Int()) + case "FootballIQ": + out.FootballIQ = int(in.Int()) + case "Speed": + out.Speed = int(in.Int()) + case "Carrying": + out.Carrying = int(in.Int()) + case "Agility": + out.Agility = int(in.Int()) + case "Catching": + out.Catching = int(in.Int()) + case "RouteRunning": + out.RouteRunning = int(in.Int()) + case "ZoneCoverage": + out.ZoneCoverage = int(in.Int()) + case "ManCoverage": + out.ManCoverage = int(in.Int()) + case "Strength": + out.Strength = int(in.Int()) + case "Tackle": + out.Tackle = int(in.Int()) + case "PassBlock": + out.PassBlock = int(in.Int()) + case "RunBlock": + out.RunBlock = int(in.Int()) + case "PassRush": + out.PassRush = int(in.Int()) + case "RunDefense": + out.RunDefense = int(in.Int()) + case "ThrowPower": + out.ThrowPower = int(in.Int()) + case "ThrowAccuracy": + out.ThrowAccuracy = int(in.Int()) + case "KickAccuracy": + out.KickAccuracy = int(in.Int()) + case "KickPower": + out.KickPower = int(in.Int()) + case "PuntAccuracy": + out.PuntAccuracy = int(in.Int()) + case "PuntPower": + out.PuntPower = int(in.Int()) + case "Progression": + out.Progression = int(in.Int()) + case "Discipline": + out.Discipline = int(in.Int()) + case "PotentialGrade": + out.PotentialGrade = string(in.String()) + case "FreeAgency": + out.FreeAgency = string(in.String()) + case "Personality": + out.Personality = string(in.String()) + case "RecruitingBias": + out.RecruitingBias = string(in.String()) + case "WorkEthic": + out.WorkEthic = string(in.String()) + case "AcademicBias": + out.AcademicBias = string(in.String()) + case "IsInjured": + out.IsInjured = bool(in.Bool()) + case "InjuryName": + out.InjuryName = string(in.String()) + case "InjuryType": + out.InjuryType = string(in.String()) + case "WeeksOfRecovery": + out.WeeksOfRecovery = uint(in.Uint()) + case "InjuryReserve": + out.InjuryReserve = bool(in.Bool()) + case "PrimeAge": + out.PrimeAge = uint(in.Uint()) + case "Clutch": + out.Clutch = int(in.Int()) + case "Shotgun": + out.Shotgun = int(in.Int()) + case "PositionTwo": + out.PositionTwo = string(in.String()) + case "ArchetypeTwo": + out.ArchetypeTwo = string(in.String()) + case "RelativeID": + out.RelativeID = uint(in.Uint()) + case "RelativeType": + out.RelativeType = uint(in.Uint()) + case "Notes": + out.Notes = string(in.String()) + case "ID": + out.ID = uint(in.Uint()) + case "CreatedAt": + if data := in.Raw(); in.Ok() { + in.AddError((out.CreatedAt).UnmarshalJSON(data)) + } + case "UpdatedAt": + if data := in.Raw(); in.Ok() { + in.AddError((out.UpdatedAt).UnmarshalJSON(data)) + } + case "DeletedAt": + if in.IsNull() { + in.Skip() + out.DeletedAt = nil + } else { + if out.DeletedAt == nil { + out.DeletedAt = new(time.Time) + } + if data := in.Raw(); in.Ok() { + in.AddError((*out.DeletedAt).UnmarshalJSON(data)) + } + } + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson83226b63EncodeGithubComCalebRoseSimFBAModels(out *jwriter.Writer, in models.NFLDraftee) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"PlayerID\":" + out.RawString(prefix[1:]) + out.Int(int(in.PlayerID)) + } + { + const prefix string = ",\"HighSchool\":" + out.RawString(prefix) + out.String(string(in.HighSchool)) + } + { + const prefix string = ",\"CollegeID\":" + out.RawString(prefix) + out.Uint(uint(in.CollegeID)) + } + { + const prefix string = ",\"College\":" + out.RawString(prefix) + out.String(string(in.College)) + } + { + const prefix string = ",\"DraftedTeamID\":" + out.RawString(prefix) + out.Uint(uint(in.DraftedTeamID)) + } + { + const prefix string = ",\"DraftedTeam\":" + out.RawString(prefix) + out.String(string(in.DraftedTeam)) + } + { + const prefix string = ",\"DraftedRound\":" + out.RawString(prefix) + out.Uint(uint(in.DraftedRound)) + } + { + const prefix string = ",\"DraftPickID\":" + out.RawString(prefix) + out.Uint(uint(in.DraftPickID)) + } + { + const prefix string = ",\"DraftedPick\":" + out.RawString(prefix) + out.Uint(uint(in.DraftedPick)) + } + { + const prefix string = ",\"City\":" + out.RawString(prefix) + out.String(string(in.City)) + } + { + const prefix string = ",\"State\":" + out.RawString(prefix) + out.String(string(in.State)) + } + { + const prefix string = ",\"OverallGrade\":" + out.RawString(prefix) + out.String(string(in.OverallGrade)) + } + { + const prefix string = ",\"StaminaGrade\":" + out.RawString(prefix) + out.String(string(in.StaminaGrade)) + } + { + const prefix string = ",\"InjuryGrade\":" + out.RawString(prefix) + out.String(string(in.InjuryGrade)) + } + { + const prefix string = ",\"FootballIQGrade\":" + out.RawString(prefix) + out.String(string(in.FootballIQGrade)) + } + { + const prefix string = ",\"SpeedGrade\":" + out.RawString(prefix) + out.String(string(in.SpeedGrade)) + } + { + const prefix string = ",\"CarryingGrade\":" + out.RawString(prefix) + out.String(string(in.CarryingGrade)) + } + { + const prefix string = ",\"AgilityGrade\":" + out.RawString(prefix) + out.String(string(in.AgilityGrade)) + } + { + const prefix string = ",\"CatchingGrade\":" + out.RawString(prefix) + out.String(string(in.CatchingGrade)) + } + { + const prefix string = ",\"RouteRunningGrade\":" + out.RawString(prefix) + out.String(string(in.RouteRunningGrade)) + } + { + const prefix string = ",\"ZoneCoverageGrade\":" + out.RawString(prefix) + out.String(string(in.ZoneCoverageGrade)) + } + { + const prefix string = ",\"ManCoverageGrade\":" + out.RawString(prefix) + out.String(string(in.ManCoverageGrade)) + } + { + const prefix string = ",\"StrengthGrade\":" + out.RawString(prefix) + out.String(string(in.StrengthGrade)) + } + { + const prefix string = ",\"TackleGrade\":" + out.RawString(prefix) + out.String(string(in.TackleGrade)) + } + { + const prefix string = ",\"PassBlockGrade\":" + out.RawString(prefix) + out.String(string(in.PassBlockGrade)) + } + { + const prefix string = ",\"RunBlockGrade\":" + out.RawString(prefix) + out.String(string(in.RunBlockGrade)) + } + { + const prefix string = ",\"PassRushGrade\":" + out.RawString(prefix) + out.String(string(in.PassRushGrade)) + } + { + const prefix string = ",\"RunDefenseGrade\":" + out.RawString(prefix) + out.String(string(in.RunDefenseGrade)) + } + { + const prefix string = ",\"ThrowPowerGrade\":" + out.RawString(prefix) + out.String(string(in.ThrowPowerGrade)) + } + { + const prefix string = ",\"ThrowAccuracyGrade\":" + out.RawString(prefix) + out.String(string(in.ThrowAccuracyGrade)) + } + { + const prefix string = ",\"KickAccuracyGrade\":" + out.RawString(prefix) + out.String(string(in.KickAccuracyGrade)) + } + { + const prefix string = ",\"KickPowerGrade\":" + out.RawString(prefix) + out.String(string(in.KickPowerGrade)) + } + { + const prefix string = ",\"PuntAccuracyGrade\":" + out.RawString(prefix) + out.String(string(in.PuntAccuracyGrade)) + } + { + const prefix string = ",\"PuntPowerGrade\":" + out.RawString(prefix) + out.String(string(in.PuntPowerGrade)) + } + { + const prefix string = ",\"BoomOrBust\":" + out.RawString(prefix) + out.Bool(bool(in.BoomOrBust)) + } + { + const prefix string = ",\"BoomOrBustStatus\":" + out.RawString(prefix) + out.String(string(in.BoomOrBustStatus)) + } + { + const prefix string = ",\"FirstName\":" + out.RawString(prefix) + out.String(string(in.FirstName)) + } + { + const prefix string = ",\"LastName\":" + out.RawString(prefix) + out.String(string(in.LastName)) + } + { + const prefix string = ",\"Position\":" + out.RawString(prefix) + out.String(string(in.Position)) + } + { + const prefix string = ",\"Archetype\":" + out.RawString(prefix) + out.String(string(in.Archetype)) + } + { + const prefix string = ",\"PreviousTeamID\":" + out.RawString(prefix) + out.Uint(uint(in.PreviousTeamID)) + } + { + const prefix string = ",\"PreviousTeam\":" + out.RawString(prefix) + out.String(string(in.PreviousTeam)) + } + { + const prefix string = ",\"Height\":" + out.RawString(prefix) + out.Int(int(in.Height)) + } + { + const prefix string = ",\"Weight\":" + out.RawString(prefix) + out.Int(int(in.Weight)) + } + { + const prefix string = ",\"Age\":" + out.RawString(prefix) + out.Int(int(in.Age)) + } + { + const prefix string = ",\"Stars\":" + out.RawString(prefix) + out.Int(int(in.Stars)) + } + { + const prefix string = ",\"Overall\":" + out.RawString(prefix) + out.Int(int(in.Overall)) + } + { + const prefix string = ",\"Stamina\":" + out.RawString(prefix) + out.Int(int(in.Stamina)) + } + { + const prefix string = ",\"Injury\":" + out.RawString(prefix) + out.Int(int(in.Injury)) + } + { + const prefix string = ",\"FootballIQ\":" + out.RawString(prefix) + out.Int(int(in.FootballIQ)) + } + { + const prefix string = ",\"Speed\":" + out.RawString(prefix) + out.Int(int(in.Speed)) + } + { + const prefix string = ",\"Carrying\":" + out.RawString(prefix) + out.Int(int(in.Carrying)) + } + { + const prefix string = ",\"Agility\":" + out.RawString(prefix) + out.Int(int(in.Agility)) + } + { + const prefix string = ",\"Catching\":" + out.RawString(prefix) + out.Int(int(in.Catching)) + } + { + const prefix string = ",\"RouteRunning\":" + out.RawString(prefix) + out.Int(int(in.RouteRunning)) + } + { + const prefix string = ",\"ZoneCoverage\":" + out.RawString(prefix) + out.Int(int(in.ZoneCoverage)) + } + { + const prefix string = ",\"ManCoverage\":" + out.RawString(prefix) + out.Int(int(in.ManCoverage)) + } + { + const prefix string = ",\"Strength\":" + out.RawString(prefix) + out.Int(int(in.Strength)) + } + { + const prefix string = ",\"Tackle\":" + out.RawString(prefix) + out.Int(int(in.Tackle)) + } + { + const prefix string = ",\"PassBlock\":" + out.RawString(prefix) + out.Int(int(in.PassBlock)) + } + { + const prefix string = ",\"RunBlock\":" + out.RawString(prefix) + out.Int(int(in.RunBlock)) + } + { + const prefix string = ",\"PassRush\":" + out.RawString(prefix) + out.Int(int(in.PassRush)) + } + { + const prefix string = ",\"RunDefense\":" + out.RawString(prefix) + out.Int(int(in.RunDefense)) + } + { + const prefix string = ",\"ThrowPower\":" + out.RawString(prefix) + out.Int(int(in.ThrowPower)) + } + { + const prefix string = ",\"ThrowAccuracy\":" + out.RawString(prefix) + out.Int(int(in.ThrowAccuracy)) + } + { + const prefix string = ",\"KickAccuracy\":" + out.RawString(prefix) + out.Int(int(in.KickAccuracy)) + } + { + const prefix string = ",\"KickPower\":" + out.RawString(prefix) + out.Int(int(in.KickPower)) + } + { + const prefix string = ",\"PuntAccuracy\":" + out.RawString(prefix) + out.Int(int(in.PuntAccuracy)) + } + { + const prefix string = ",\"PuntPower\":" + out.RawString(prefix) + out.Int(int(in.PuntPower)) + } + { + const prefix string = ",\"Progression\":" + out.RawString(prefix) + out.Int(int(in.Progression)) } -} -func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs25(out *jwriter.Writer, in structs.NFLDepthChart) { - out.RawByte('{') - first := true - _ = first { - const prefix string = ",\"TeamID\":" - out.RawString(prefix[1:]) - out.Int(int(in.TeamID)) + const prefix string = ",\"Discipline\":" + out.RawString(prefix) + out.Int(int(in.Discipline)) } { - const prefix string = ",\"DepthChartPlayers\":" + const prefix string = ",\"PotentialGrade\":" out.RawString(prefix) - if in.DepthChartPlayers == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { - out.RawString("null") - } else { - out.RawByte('[') - for v113, v114 := range in.DepthChartPlayers { - if v113 > 0 { - out.RawByte(',') - } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs27(out, v114) - } - out.RawByte(']') - } + out.String(string(in.PotentialGrade)) } { - const prefix string = ",\"ID\":" + const prefix string = ",\"FreeAgency\":" out.RawString(prefix) - out.Uint(uint(in.ID)) + out.String(string(in.FreeAgency)) } { - const prefix string = ",\"CreatedAt\":" + const prefix string = ",\"Personality\":" out.RawString(prefix) - out.Raw((in.CreatedAt).MarshalJSON()) + out.String(string(in.Personality)) } { - const prefix string = ",\"UpdatedAt\":" + const prefix string = ",\"RecruitingBias\":" out.RawString(prefix) - out.Raw((in.UpdatedAt).MarshalJSON()) + out.String(string(in.RecruitingBias)) } { - const prefix string = ",\"DeletedAt\":" + const prefix string = ",\"WorkEthic\":" out.RawString(prefix) - if in.DeletedAt == nil { - out.RawString("null") - } else { - out.Raw((*in.DeletedAt).MarshalJSON()) - } + out.String(string(in.WorkEthic)) } - out.RawByte('}') -} -func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs27(in *jlexer.Lexer, out *structs.NFLDepthChartPosition) { - isTopLevel := in.IsStart() - if in.IsNull() { - if isTopLevel { - in.Consumed() - } - in.Skip() - return + { + const prefix string = ",\"AcademicBias\":" + out.RawString(prefix) + out.String(string(in.AcademicBias)) } - in.Delim('{') - for !in.IsDelim('}') { - key := in.UnsafeFieldName(false) - in.WantColon() - if in.IsNull() { - in.Skip() - in.WantComma() - continue - } - switch key { - case "DepthChartID": - out.DepthChartID = uint(in.Uint()) - case "PlayerID": - out.PlayerID = uint(in.Uint()) - case "Position": - out.Position = string(in.String()) - case "PositionLevel": - out.PositionLevel = string(in.String()) - case "FirstName": - out.FirstName = string(in.String()) - case "LastName": - out.LastName = string(in.String()) - case "OriginalPosition": - out.OriginalPosition = string(in.String()) - case "NFLPlayer": - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs13(in, &out.NFLPlayer) - case "ID": - out.ID = uint(in.Uint()) - case "CreatedAt": - if data := in.Raw(); in.Ok() { - in.AddError((out.CreatedAt).UnmarshalJSON(data)) - } - case "UpdatedAt": - if data := in.Raw(); in.Ok() { - in.AddError((out.UpdatedAt).UnmarshalJSON(data)) - } - case "DeletedAt": - if in.IsNull() { - in.Skip() - out.DeletedAt = nil - } else { - if out.DeletedAt == nil { - out.DeletedAt = new(time.Time) - } - if data := in.Raw(); in.Ok() { - in.AddError((*out.DeletedAt).UnmarshalJSON(data)) - } - } - default: - in.SkipRecursive() - } - in.WantComma() + { + const prefix string = ",\"IsInjured\":" + out.RawString(prefix) + out.Bool(bool(in.IsInjured)) } - in.Delim('}') - if isTopLevel { - in.Consumed() + { + const prefix string = ",\"InjuryName\":" + out.RawString(prefix) + out.String(string(in.InjuryName)) } -} -func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs27(out *jwriter.Writer, in structs.NFLDepthChartPosition) { - out.RawByte('{') - first := true - _ = first { - const prefix string = ",\"DepthChartID\":" - out.RawString(prefix[1:]) - out.Uint(uint(in.DepthChartID)) + const prefix string = ",\"InjuryType\":" + out.RawString(prefix) + out.String(string(in.InjuryType)) } { - const prefix string = ",\"PlayerID\":" + const prefix string = ",\"WeeksOfRecovery\":" out.RawString(prefix) - out.Uint(uint(in.PlayerID)) + out.Uint(uint(in.WeeksOfRecovery)) } { - const prefix string = ",\"Position\":" + const prefix string = ",\"InjuryReserve\":" out.RawString(prefix) - out.String(string(in.Position)) + out.Bool(bool(in.InjuryReserve)) } { - const prefix string = ",\"PositionLevel\":" + const prefix string = ",\"PrimeAge\":" out.RawString(prefix) - out.String(string(in.PositionLevel)) + out.Uint(uint(in.PrimeAge)) } { - const prefix string = ",\"FirstName\":" + const prefix string = ",\"Clutch\":" out.RawString(prefix) - out.String(string(in.FirstName)) + out.Int(int(in.Clutch)) } { - const prefix string = ",\"LastName\":" + const prefix string = ",\"Shotgun\":" out.RawString(prefix) - out.String(string(in.LastName)) + out.Int(int(in.Shotgun)) } { - const prefix string = ",\"OriginalPosition\":" + const prefix string = ",\"PositionTwo\":" out.RawString(prefix) - out.String(string(in.OriginalPosition)) + out.String(string(in.PositionTwo)) } { - const prefix string = ",\"NFLPlayer\":" + const prefix string = ",\"ArchetypeTwo\":" out.RawString(prefix) - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs13(out, in.NFLPlayer) + out.String(string(in.ArchetypeTwo)) + } + { + const prefix string = ",\"RelativeID\":" + out.RawString(prefix) + out.Uint(uint(in.RelativeID)) + } + { + const prefix string = ",\"RelativeType\":" + out.RawString(prefix) + out.Uint(uint(in.RelativeType)) + } + { + const prefix string = ",\"Notes\":" + out.RawString(prefix) + out.String(string(in.Notes)) } { const prefix string = ",\"ID\":" @@ -10284,9 +11049,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs24(in *jlexer.Lexer, o out.DepthChartPlayers = (out.DepthChartPlayers)[:0] } for !in.IsDelim(']') { - var v115 structs.CollegeDepthChartPosition - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs28(in, &v115) - out.DepthChartPlayers = append(out.DepthChartPlayers, v115) + var v118 structs.CollegeDepthChartPosition + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs28(in, &v118) + out.DepthChartPlayers = append(out.DepthChartPlayers, v118) in.WantComma() } in.Delim(']') @@ -10339,11 +11104,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs24(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v116, v117 := range in.DepthChartPlayers { - if v116 > 0 { + for v119, v120 := range in.DepthChartPlayers { + if v119 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs28(out, v117) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs28(out, v120) } out.RawByte(']') } @@ -10602,9 +11367,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs23(in *jlexer.Lexer, o out.LeadingTeams = (out.LeadingTeams)[:0] } for !in.IsDelim(']') { - var v118 structs.LeadingTeams - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs29(in, &v118) - out.LeadingTeams = append(out.LeadingTeams, v118) + var v121 structs.LeadingTeams + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs29(in, &v121) + out.LeadingTeams = append(out.LeadingTeams, v121) in.WantComma() } in.Delim(']') @@ -10770,11 +11535,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs23(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v119, v120 := range in.LeadingTeams { - if v119 > 0 { + for v122, v123 := range in.LeadingTeams { + if v122 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs29(out, v120) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs29(out, v123) } out.RawByte(']') } @@ -10888,9 +11653,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.AllCollegeTeams = (out.AllCollegeTeams)[:0] } for !in.IsDelim(']') { - var v121 structs.CollegeTeam - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs30(in, &v121) - out.AllCollegeTeams = append(out.AllCollegeTeams, v121) + var v124 structs.CollegeTeam + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs30(in, &v124) + out.AllCollegeTeams = append(out.AllCollegeTeams, v124) in.WantComma() } in.Delim(']') @@ -10904,30 +11669,30 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o for !in.IsDelim('}') { key := uint(in.UintStr()) in.WantColon() - var v122 []structs.CollegePlayer + var v125 []structs.CollegePlayer if in.IsNull() { in.Skip() - v122 = nil + v125 = nil } else { in.Delim('[') - if v122 == nil { + if v125 == nil { if !in.IsDelim(']') { - v122 = make([]structs.CollegePlayer, 0, 0) + v125 = make([]structs.CollegePlayer, 0, 0) } else { - v122 = []structs.CollegePlayer{} + v125 = []structs.CollegePlayer{} } } else { - v122 = (v122)[:0] + v125 = (v125)[:0] } for !in.IsDelim(']') { - var v123 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v123) - v122 = append(v122, v123) + var v126 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v126) + v125 = append(v125, v126) in.WantComma() } in.Delim(']') } - (out.CollegeRosterMap)[key] = v122 + (out.CollegeRosterMap)[key] = v125 in.WantComma() } in.Delim('}') @@ -10948,9 +11713,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.TopCFBPassers = (out.TopCFBPassers)[:0] } for !in.IsDelim(']') { - var v124 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v124) - out.TopCFBPassers = append(out.TopCFBPassers, v124) + var v127 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v127) + out.TopCFBPassers = append(out.TopCFBPassers, v127) in.WantComma() } in.Delim(']') @@ -10971,9 +11736,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.TopCFBRushers = (out.TopCFBRushers)[:0] } for !in.IsDelim(']') { - var v125 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v125) - out.TopCFBRushers = append(out.TopCFBRushers, v125) + var v128 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v128) + out.TopCFBRushers = append(out.TopCFBRushers, v128) in.WantComma() } in.Delim(']') @@ -10994,9 +11759,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.TopCFBReceivers = (out.TopCFBReceivers)[:0] } for !in.IsDelim(']') { - var v126 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v126) - out.TopCFBReceivers = append(out.TopCFBReceivers, v126) + var v129 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v129) + out.TopCFBReceivers = append(out.TopCFBReceivers, v129) in.WantComma() } in.Delim(']') @@ -11017,9 +11782,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.PortalPlayers = (out.PortalPlayers)[:0] } for !in.IsDelim(']') { - var v127 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v127) - out.PortalPlayers = append(out.PortalPlayers, v127) + var v130 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v130) + out.PortalPlayers = append(out.PortalPlayers, v130) in.WantComma() } in.Delim(']') @@ -11040,9 +11805,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.CollegeInjuryReport = (out.CollegeInjuryReport)[:0] } for !in.IsDelim(']') { - var v128 structs.CollegePlayer - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v128) - out.CollegeInjuryReport = append(out.CollegeInjuryReport, v128) + var v131 structs.CollegePlayer + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs3(in, &v131) + out.CollegeInjuryReport = append(out.CollegeInjuryReport, v131) in.WantComma() } in.Delim(']') @@ -11063,9 +11828,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.CollegeNotifications = (out.CollegeNotifications)[:0] } for !in.IsDelim(']') { - var v129 structs.Notification - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs31(in, &v129) - out.CollegeNotifications = append(out.CollegeNotifications, v129) + var v132 structs.Notification + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs31(in, &v132) + out.CollegeNotifications = append(out.CollegeNotifications, v132) in.WantComma() } in.Delim(']') @@ -11092,9 +11857,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.AllProTeams = (out.AllProTeams)[:0] } for !in.IsDelim(']') { - var v130 structs.NFLTeam - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in, &v130) - out.AllProTeams = append(out.AllProTeams, v130) + var v133 structs.NFLTeam + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in, &v133) + out.AllProTeams = append(out.AllProTeams, v133) in.WantComma() } in.Delim(']') @@ -11115,9 +11880,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o out.ProNotifications = (out.ProNotifications)[:0] } for !in.IsDelim(']') { - var v131 structs.Notification - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs31(in, &v131) - out.ProNotifications = append(out.ProNotifications, v131) + var v134 structs.Notification + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs31(in, &v134) + out.ProNotifications = append(out.ProNotifications, v134) in.WantComma() } in.Delim(']') @@ -11126,22 +11891,6 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAManagers3(in *jlexer.Lexer, o easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs34(in, &out.NFLGameplan) case "NFLDepthChart": easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs25(in, &out.NFLDepthChart) - case "FaceData": - if in.IsNull() { - in.Skip() - } else { - in.Delim('{') - out.FaceData = make(map[uint]structs.FaceDataResponse) - for !in.IsDelim('}') { - key := uint(in.UintStr()) - in.WantColon() - var v132 structs.FaceDataResponse - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs26(in, &v132) - (out.FaceData)[key] = v132 - in.WantComma() - } - in.Delim('}') - } default: in.SkipRecursive() } @@ -11168,11 +11917,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v133, v134 := range in.AllCollegeTeams { - if v133 > 0 { + for v135, v136 := range in.AllCollegeTeams { + if v135 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs30(out, v134) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs30(out, v136) } out.RawByte(']') } @@ -11184,24 +11933,24 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString(`null`) } else { out.RawByte('{') - v135First := true - for v135Name, v135Value := range in.CollegeRosterMap { - if v135First { - v135First = false + v137First := true + for v137Name, v137Value := range in.CollegeRosterMap { + if v137First { + v137First = false } else { out.RawByte(',') } - out.UintStr(uint(v135Name)) + out.UintStr(uint(v137Name)) out.RawByte(':') - if v135Value == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + if v137Value == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { out.RawString("null") } else { out.RawByte('[') - for v136, v137 := range v135Value { - if v136 > 0 { + for v138, v139 := range v137Value { + if v138 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v137) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v139) } out.RawByte(']') } @@ -11216,11 +11965,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v138, v139 := range in.TopCFBPassers { - if v138 > 0 { + for v140, v141 := range in.TopCFBPassers { + if v140 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v139) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v141) } out.RawByte(']') } @@ -11232,11 +11981,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v140, v141 := range in.TopCFBRushers { - if v140 > 0 { + for v142, v143 := range in.TopCFBRushers { + if v142 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v141) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v143) } out.RawByte(']') } @@ -11248,11 +11997,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v142, v143 := range in.TopCFBReceivers { - if v142 > 0 { + for v144, v145 := range in.TopCFBReceivers { + if v144 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v143) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v145) } out.RawByte(']') } @@ -11264,11 +12013,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v144, v145 := range in.PortalPlayers { - if v144 > 0 { + for v146, v147 := range in.PortalPlayers { + if v146 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v145) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v147) } out.RawByte(']') } @@ -11280,11 +12029,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v146, v147 := range in.CollegeInjuryReport { - if v146 > 0 { + for v148, v149 := range in.CollegeInjuryReport { + if v148 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v147) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs3(out, v149) } out.RawByte(']') } @@ -11296,11 +12045,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v148, v149 := range in.CollegeNotifications { - if v148 > 0 { + for v150, v151 := range in.CollegeNotifications { + if v150 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs31(out, v149) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs31(out, v151) } out.RawByte(']') } @@ -11327,11 +12076,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v150, v151 := range in.AllProTeams { - if v150 > 0 { + for v152, v153 := range in.AllProTeams { + if v152 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out, v151) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out, v153) } out.RawByte(']') } @@ -11343,11 +12092,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v152, v153 := range in.ProNotifications { - if v152 > 0 { + for v154, v155 := range in.ProNotifications { + if v154 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs31(out, v153) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs31(out, v155) } out.RawByte(']') } @@ -11362,27 +12111,6 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAManagers3(out *jwriter.Writer out.RawString(prefix) easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs25(out, in.NFLDepthChart) } - { - const prefix string = ",\"FaceData\":" - out.RawString(prefix) - if in.FaceData == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 { - out.RawString(`null`) - } else { - out.RawByte('{') - v154First := true - for v154Name, v154Value := range in.FaceData { - if v154First { - v154First = false - } else { - out.RawByte(',') - } - out.UintStr(uint(v154Name)) - out.RawByte(':') - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs26(out, v154Value) - } - out.RawByte('}') - } - } out.RawByte('}') } @@ -12500,9 +13228,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.Contracts = (out.Contracts)[:0] } for !in.IsDelim(']') { - var v155 structs.NFLContract - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs16(in, &v155) - out.Contracts = append(out.Contracts, v155) + var v156 structs.NFLContract + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs16(in, &v156) + out.Contracts = append(out.Contracts, v156) in.WantComma() } in.Delim(']') @@ -12523,9 +13251,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.DraftPicks = (out.DraftPicks)[:0] } for !in.IsDelim(']') { - var v156 structs.NFLDraftPick - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs35(in, &v156) - out.DraftPicks = append(out.DraftPicks, v156) + var v157 structs.NFLDraftPick + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs35(in, &v157) + out.DraftPicks = append(out.DraftPicks, v157) in.WantComma() } in.Delim(']') @@ -12546,9 +13274,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.TeamStats = (out.TeamStats)[:0] } for !in.IsDelim(']') { - var v157 structs.NFLTeamStats - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs36(in, &v157) - out.TeamStats = append(out.TeamStats, v157) + var v158 structs.NFLTeamStats + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs36(in, &v158) + out.TeamStats = append(out.TeamStats, v158) in.WantComma() } in.Delim(']') @@ -12569,9 +13297,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.TeamSeasonStats = (out.TeamSeasonStats)[:0] } for !in.IsDelim(']') { - var v158 structs.NFLTeamSeasonStats - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs37(in, &v158) - out.TeamSeasonStats = append(out.TeamSeasonStats, v158) + var v159 structs.NFLTeamSeasonStats + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs37(in, &v159) + out.TeamSeasonStats = append(out.TeamSeasonStats, v159) in.WantComma() } in.Delim(']') @@ -12596,9 +13324,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.Standings = (out.Standings)[:0] } for !in.IsDelim(']') { - var v159 structs.NFLStandings - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs10(in, &v159) - out.Standings = append(out.Standings, v159) + var v160 structs.NFLStandings + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs10(in, &v160) + out.Standings = append(out.Standings, v160) in.WantComma() } in.Delim(']') @@ -12649,6 +13377,10 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs33(in *jlexer.Lexer, o out.PenaltyMarks = uint8(in.Uint8()) case "JerseyType": out.JerseyType = uint8(in.Uint8()) + case "LastLogin": + if data := in.Raw(); in.Ok() { + in.AddError((out.LastLogin).UnmarshalJSON(data)) + } case "ID": out.ID = uint(in.Uint()) case "CreatedAt": @@ -12767,11 +13499,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v160, v161 := range in.Contracts { - if v160 > 0 { + for v161, v162 := range in.Contracts { + if v161 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs16(out, v161) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs16(out, v162) } out.RawByte(']') } @@ -12783,11 +13515,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v162, v163 := range in.DraftPicks { - if v162 > 0 { + for v163, v164 := range in.DraftPicks { + if v163 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs35(out, v163) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs35(out, v164) } out.RawByte(']') } @@ -12799,11 +13531,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v164, v165 := range in.TeamStats { - if v164 > 0 { + for v165, v166 := range in.TeamStats { + if v165 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs36(out, v165) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs36(out, v166) } out.RawByte(']') } @@ -12815,11 +13547,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v166, v167 := range in.TeamSeasonStats { - if v166 > 0 { + for v167, v168 := range in.TeamSeasonStats { + if v167 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs37(out, v167) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs37(out, v168) } out.RawByte(']') } @@ -12841,11 +13573,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v168, v169 := range in.Standings { - if v168 > 0 { + for v169, v170 := range in.Standings { + if v169 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs10(out, v169) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs10(out, v170) } out.RawByte(']') } @@ -12965,6 +13697,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs33(out *jwriter.Writer out.RawString(prefix) out.Uint8(uint8(in.JerseyType)) } + { + const prefix string = ",\"LastLogin\":" + out.RawString(prefix) + out.Raw((in.LastLogin).MarshalJSON()) + } { const prefix string = ",\"ID\":" out.RawString(prefix) @@ -15741,9 +16478,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs30(in *jlexer.Lexer, o out.TeamStats = (out.TeamStats)[:0] } for !in.IsDelim(']') { - var v170 structs.CollegeTeamStats - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs39(in, &v170) - out.TeamStats = append(out.TeamStats, v170) + var v171 structs.CollegeTeamStats + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs39(in, &v171) + out.TeamStats = append(out.TeamStats, v171) in.WantComma() } in.Delim(']') @@ -15772,9 +16509,9 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs30(in *jlexer.Lexer, o out.TeamStandings = (out.TeamStandings)[:0] } for !in.IsDelim(']') { - var v171 structs.CollegeStandings - easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs1(in, &v171) - out.TeamStandings = append(out.TeamStandings, v171) + var v172 structs.CollegeStandings + easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs1(in, &v172) + out.TeamStandings = append(out.TeamStandings, v172) in.WantComma() } in.Delim(']') @@ -15825,6 +16562,10 @@ func easyjson83226b63DecodeGithubComCalebRoseSimFBAStructs30(in *jlexer.Lexer, o out.PenaltyMarks = uint8(in.Uint8()) case "JerseyType": out.JerseyType = uint8(in.Uint8()) + case "LastLogin": + if data := in.Raw(); in.Ok() { + in.AddError((out.LastLogin).UnmarshalJSON(data)) + } case "ID": out.ID = uint(in.Uint()) case "CreatedAt": @@ -15933,11 +16674,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs30(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v172, v173 := range in.TeamStats { - if v172 > 0 { + for v173, v174 := range in.TeamStats { + if v173 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs39(out, v173) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs39(out, v174) } out.RawByte(']') } @@ -15969,11 +16710,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs30(out *jwriter.Writer out.RawString("null") } else { out.RawByte('[') - for v174, v175 := range in.TeamStandings { - if v174 > 0 { + for v175, v176 := range in.TeamStandings { + if v175 > 0 { out.RawByte(',') } - easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs1(out, v175) + easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs1(out, v176) } out.RawByte(']') } @@ -16093,6 +16834,11 @@ func easyjson83226b63EncodeGithubComCalebRoseSimFBAStructs30(out *jwriter.Writer out.RawString(prefix) out.Uint8(uint8(in.JerseyType)) } + { + const prefix string = ",\"LastLogin\":" + out.RawString(prefix) + out.Raw((in.LastLogin).MarshalJSON()) + } { const prefix string = ",\"ID\":" out.RawString(prefix) diff --git a/managers/FreeAgencyManager.go b/managers/FreeAgencyManager.go index 8e077e5..b246a25 100644 --- a/managers/FreeAgencyManager.go +++ b/managers/FreeAgencyManager.go @@ -487,64 +487,81 @@ func SyncFreeAgencyOffers() { ts := GetTimestamp() ts.ToggleFALock() - db.Save(&ts) + repository.SaveTimestamp(ts, db) FreeAgents := GetAllFreeAgents() capsheetMap := getCapsheetMap() for _, FA := range FreeAgents { // If the Free Agent is not available in off-season free agency anymore - if ts.IsNFLOffSeason && !FA.IsNegotiating && !FA.IsAcceptingOffers { + if ts.IsNFLOffSeason { continue } - // Check if still accepting offers - if ts.IsNFLOffSeason && FA.IsAcceptingOffers && ts.FreeAgencyRound < FA.NegotiationRound { + // Is Ready to Sign + Offers := GetFreeAgentOffersByPlayerID(strconv.Itoa(int(FA.ID))) + if len(Offers) == 0 { continue } + maxDay := 1000 - if ts.IsNFLOffSeason && FA.IsAcceptingOffers && ts.FreeAgencyRound >= FA.NegotiationRound { - FA.ToggleIsNegotiating() - db.Save(&FA) - continue + for _, offer := range Offers { + if maxDay > int(offer.Syncs) { + maxDay = int(offer.Syncs) + } } - - // Is Ready to Sign - Offers := GetFreeAgentOffersByPlayerID(strconv.Itoa(int(FA.ID))) - - // Sort by highest contract value - sort.Sort(structs.ByContractValue(Offers)) - - WinningOffer := structs.FreeAgencyOffer{} - - for _, Offer := range Offers { - // Calculate to see if team can afford to pay for contract in Y1 - capsheet := capsheetMap[Offer.TeamID] - if capsheet.ID == 0 { - // Invalid!! - continue + if maxDay < 3 { + for _, offer := range Offers { + offer.IncrementSyncs() + repository.SaveFreeAgencyOfferRecord(offer, db) } - // y1CapSpace := ts.Y1Capspace - capsheet.Y1Bonus - capsheet.Y1Salary - capsheet.Y1CapHit - // y1Remaining := y1CapSpace - Offer.Y1BaseSalary - Offer.Y1Bonus - // if y1CapSpace < 0 || y1Remaining < 0 { - // continue - // } - // Get the Contract with the best value for the FA - if Offer.IsActive && WinningOffer.ID == 0 { - WinningOffer = Offer + } else { + // Sort by highest contract value + sort.Sort(structs.ByContractValue(Offers)) + + WinningOffer := structs.FreeAgencyOffer{} + competingTeams := []structs.FreeAgencyOffer{} + highestContractValue := 0.0 + for _, offer := range Offers { + capsheet := capsheetMap[offer.TeamID] + if capsheet.ID == 0 { + // Invalid!! + continue + } + if offer.ContractValue > highestContractValue { + highestContractValue = offer.ContractValue + competingTeams = []structs.FreeAgencyOffer{offer} + } else if offer.ContractValue == highestContractValue && highestContractValue > 0 { + competingTeams = append(competingTeams, offer) + } else { + break + } } - if Offer.IsActive { - Offer.CancelOffer() + idx := 0 + if len(competingTeams) > 1 { + idx = util.GenerateIntFromRange(0, len(competingTeams)-1) } + WinningOffer = competingTeams[idx] + for _, offer := range Offers { + capsheet := capsheetMap[offer.TeamID] + if capsheet.ID == 0 { + continue + } + if offer.IsActive && offer.ID != WinningOffer.ID { + offer.RejectOffer() + } else if offer.IsActive && offer.ID == WinningOffer.ID { + offer.DeactivateOffer() + } - db.Save(&Offer) - } + repository.SaveFreeAgencyOfferRecord(offer, db) + } - if WinningOffer.ID > 0 { - SignFreeAgent(WinningOffer, FA, ts) - } else if ts.IsNFLOffSeason { - FA.WaitUntilAfterDraft() - db.Save(&FA) + if WinningOffer.ID > 0 { + SignFreeAgent(WinningOffer, FA, ts) + } else if ts.IsNFLOffSeason { + FA.WaitUntilAfterDraft() + repository.SaveNFLPlayer(FA, db) + } } } @@ -638,12 +655,6 @@ func SyncFreeAgencyOffers() { // Invalid!! continue } - // y1CapSpace := ts.Y1Capspace - capsheet.Y1Bonus - capsheet.Y1Salary - capsheet.Y1CapHit - // y1Remaining := y1CapSpace - contract.Y1BaseSalary - contract.Y1Bonus - // if y1CapSpace < 0 || y1Remaining < 0 { - // continue - // } - // Get the Contract with the best value for the FA if Offer.IsActive && WinningOffer.ID == 0 { WinningOffer = Offer } @@ -671,7 +682,7 @@ func SyncFreeAgencyOffers() { db.Model(&structs.NFLPlayer{}).Where("age > ? and is_free_agent = ? and minimum_value >= 1", "29", true).Update("minimum_value", gorm.Expr("minimum_value * 0.9")) } - db.Save(&ts) + repository.SaveTimestamp(ts, db) } func SyncExtensionOffers() { diff --git a/managers/GameplanManager.go b/managers/GameplanManager.go index 4172642..23cc041 100644 --- a/managers/GameplanManager.go +++ b/managers/GameplanManager.go @@ -329,7 +329,7 @@ func UpdateGameplan(updateGameplanDto structs.UpdateGameplanDTO) { currentGameplan := GetGameplanByGameplanID(gameplanID) currentGameplan.UpdateCollegeGameplan(updateGameplanDto.UpdatedGameplan) - db.Save(¤tGameplan) + repository.SaveCFBGameplanRecord(currentGameplan, db) } func UpdateNFLGameplan(updateGameplanDto structs.UpdateGameplanDTO) { @@ -341,7 +341,7 @@ func UpdateNFLGameplan(updateGameplanDto structs.UpdateGameplanDTO) { UpdatedGameplan := updateGameplanDto.UpdatedNFLGameplan currentGameplan.UpdateNFLGameplan(UpdatedGameplan) - db.Save(¤tGameplan) + repository.SaveNFLGameplanRecord(currentGameplan, db) } func UpdateDepthChart(updateDepthchartDTO structs.UpdateDepthChartDTO) { diff --git a/managers/GenerationManager.go b/managers/GenerationManager.go index ca5e290..8696325 100644 --- a/managers/GenerationManager.go +++ b/managers/GenerationManager.go @@ -382,7 +382,6 @@ func GenerateCroots() { log.Fatalln("Could not grab last player record from players table...") } - // var playerList []structs.CollegePlayer fNameMap, lNameMap := getNameMaps() generator := CrootGenerator{ firstNameMap: fNameMap, @@ -432,37 +431,37 @@ func GenerateWalkOns() { count := 0 attributeBlob := getAttributeBlob() highSchoolBlob := getCrootLocations() - + faceDataBlob := getFaceDataBlob() + faces := []structs.FaceData{} + recruitBatchList := []structs.Recruit{} + recruitProfileBatchList := []structs.RecruitPlayerProfile{} + globalPlayerList := []structs.Player{} firstNameMap, lastNameMap := getNameMaps() + collegePlayers := GetAllCollegePlayers() + collegeRosterMap := MakeCollegePlayerMapByTeamID(collegePlayers, true) newID := getLatestRecord(db) for _, team := range AllTeams { - id := strconv.Itoa(int(team.ID)) - signedRecruits := GetSignedRecruitsByTeamProfileID(id) - if len(signedRecruits) == team.RecruitClassSize { + roster := collegeRosterMap[team.ID] + rosterCount := len(roster) + for _, p := range roster { + if p.Year == 5 || (p.Year == 4 && !p.IsRedshirt) { + rosterCount-- + } + } + rosterCount += team.TotalCommitments + rosterLimit := 105 + if !team.IsFBS { + rosterLimit = 80 + } + if rosterCount >= rosterLimit { continue } - positionList := []string{} + positionList := []string{"QB", "FB", "RB", "TE", "WR", "OT", "OG", "C", "DT", "DE", "OLB", "ILB", "CB", "FS", "SS", "K", "P", "ATH"} // Get Team Needs - teamNeeds := GetRecruitingNeeds(id) - limit := team.RecruitClassSize - len(signedRecruits) - - // for _, recruit := range signedRecruits { - // if teamNeeds[recruit.Position] > 0 { - // teamNeeds[recruit.Position] -= 1 - // } - // } - - // Get All Needed Positions into a list - for k, v := range teamNeeds { - i := v - for i > 0 { - positionList = append(positionList, k) - i-- - } - } + walkonLimit := rosterLimit - rosterCount // Randomize List rand.Shuffle(len(positionList), func(i, j int) { @@ -471,7 +470,7 @@ func GenerateWalkOns() { // Recruit Generation for _, pos := range positionList { - if count >= limit { + if count >= walkonLimit { break } @@ -501,16 +500,25 @@ func GenerateWalkOns() { playerRecord.AssignID(newID) count++ - db.Create(&playerRecord) - db.Create(&recruit) - db.Create(&recruitPlayerRecord) + skinColor := getSkinColorByEthnicity(ethnicity) + + face := getFace(newID, recruit.Weight, skinColor, faceDataBlob) + faces = append(faces, face) + globalPlayerList = append(globalPlayerList, playerRecord) + recruitBatchList = append(recruitBatchList, recruit) + recruitProfileBatchList = append(recruitProfileBatchList, recruitPlayerRecord) newID++ team.IncreaseCommitCount() - db.Save(&team) + repository.SaveRecruitingTeamProfile(team, db) + } count = 0 fmt.Println("Finished walkon generation for " + team.TeamAbbreviation) } + repository.CreateFaceRecordsBatch(db, faces, 500) + repository.CreateCFBRecruitRecordsBatch(db, recruitBatchList, 500) + repository.CreateCFBRecruitProfileRecordsBatch(db, recruitProfileBatchList, 500) + repository.CreateGlobalPlayerRecordsBatch(db, globalPlayerList, 500) } func CreateCustomCroots() { @@ -773,11 +781,12 @@ func createWalkon(position string, firstNameList [][]string, lastNameList [][]st basePlayer.GetOverall() return structs.Recruit{ - BasePlayer: basePlayer, - City: city, - HighSchool: highSchool, - State: state, - IsSigned: true, + BasePlayer: basePlayer, + City: city, + HighSchool: highSchool, + State: state, + IsSigned: true, + TopRankModifier: 1, } } diff --git a/managers/ImportManager.go b/managers/ImportManager.go index efbf3c5..1b082fb 100644 --- a/managers/ImportManager.go +++ b/managers/ImportManager.go @@ -1446,3 +1446,72 @@ func ImportCFB2021PlayerStats() { repository.CreateCFBPlayerSeasonStatsRecordsBatch(db, seasonStats, 200) } + +func FixATHProgressions() { + db := dbprovider.GetInstance().GetDB() + ts := GetTimestamp() + players := GetAllCollegePlayers() + collegePlayerMap := MakeCollegePlayerMap(players) + snapMap := GetCollegePlayerSeasonSnapMap(strconv.Itoa(int(ts.CollegeSeasonID))) + statMap := GetCollegePlayerStatsMap(strconv.Itoa(int(ts.CollegeSeasonID))) + + path := "C:\\Users\\ctros\\go\\src\\github.com\\CalebRose\\SimFBA\\data\\2026\\2026_ATH_Fix.csv" + + playerCSV := util.ReadCSV(path) + // Open CSV + + for idx, row := range playerCSV { + if idx == 0 { + continue + } + playerID := util.ConvertStringToInt(row[0]) + p := collegePlayerMap[uint(playerID)] + isBroken := p.Position == "ATH" + if !isBroken { + continue + } + /* + CSV contains letter grades only. Fuck. + I will need to generate new values from these letter grades + So look through how we get letter grades, and then reverse-engineer a numeric value from that + And THEN progress that value + */ + footballIQ := util.ConvertStringToInt(row[6]) + speed := util.ConvertStringToInt(row[7]) + agility := util.ConvertStringToInt(row[9]) + carrying := util.ConvertStringToInt(row[8]) + catching := util.ConvertStringToInt(row[10]) + routeRunning := util.ConvertStringToInt(row[11]) + zoneCoverage := util.ConvertStringToInt(row[12]) + manCoverage := util.ConvertStringToInt(row[13]) + strength := util.ConvertStringToInt(row[14]) + tackle := util.ConvertStringToInt(row[15]) + passBlock := util.ConvertStringToInt(row[16]) + runBlock := util.ConvertStringToInt(row[17]) + passRush := util.ConvertStringToInt(row[18]) + runDefense := util.ConvertStringToInt(row[19]) + throwPower := util.ConvertStringToInt(row[20]) + throwAccuracy := util.ConvertStringToInt(row[21]) + kickAccuracy := util.ConvertStringToInt(row[22]) + kickPower := util.ConvertStringToInt(row[23]) + puntAccuracy := util.ConvertStringToInt(row[24]) + puntPower := util.ConvertStringToInt(row[25]) + isRedshirting := util.ConvertStringToBool(row[27]) + // Apply to player record + p.ApplyFixedATHAttributes(footballIQ, speed, agility, carrying, catching, routeRunning, + zoneCoverage, manCoverage, strength, tackle, passBlock, runBlock, passRush, runDefense, + throwPower, throwAccuracy, kickAccuracy, kickPower, puntAccuracy, puntPower) + + p.RevertRedshirting(isRedshirting) + + // Then progress + stats := statMap[p.ID] + snaps := snapMap[p.ID] + p = ProgressCollegePlayer(p, strconv.Itoa(int(ts.CollegeSeasonID)), stats, snaps) + // Revert year back by 1 + p.RevertYearProgression() + + // Save player record + repository.SaveCFBPlayer(p, db) + } +} diff --git a/managers/ProgressionManager.go b/managers/ProgressionManager.go index 4acb082..19c5fd2 100644 --- a/managers/ProgressionManager.go +++ b/managers/ProgressionManager.go @@ -81,14 +81,14 @@ func CFBProgressionMain() { } // Generate Tier - if diceRoll == 1 { + if diceRoll == 1 && player.ID != 24984 { boomBustStatus = "Bust" enableBoomBust = true // Bust draftee.AssignBoomBustStatus(boomBustStatus) - } else if diceRoll == 20 { + } else if diceRoll == 20 || player.ID == 24984 { enableBoomBust = true // Boom @@ -460,6 +460,14 @@ func ProgressNFLPlayer(np structs.NFLPlayer, SeasonID string, totalSnaps, SnapsP mostPlayedPosition = np.Position } + /* + Future work - converting ATH to new primary position + If a player is an ATH, and if they have played a full position by snaps somewhere, convert the ATH to a the new position, with an archetype that is a fit to the scheme. + If the position and archetype has no fit with the position, then set the new primary position & select archetype based on the ATH archetype + + + */ + if mostPlayedPosition == "QB" { // Primary Progressions Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) @@ -776,6 +784,216 @@ func ProgressNFLPlayer(np structs.NFLPlayer, SeasonID string, totalSnaps, SnapsP Speed = SecondaryProgression(np.Progression, np.Speed) Agility = SecondaryProgression(np.Progression, np.Agility) FootballIQ = SecondaryProgression(np.Progression, np.FootballIQ) + } else if mostPlayedPosition == "ATH" { + // Use Archetype + archetype := np.Archetype + if archetype == "Field General" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + ThrowPower = PrimaryProgression(np.Progression, np.ThrowPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Throw Power", np.IsPracticeSquad) + ThrowAccuracy = PrimaryProgression(np.Progression, np.ThrowAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Throw Accuracy", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + RunDefense = PrimaryProgression(np.Progression, np.RunDefense, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Defense", np.IsPracticeSquad) + Tackle = PrimaryProgression(np.Progression, np.Tackle, mostPlayedPosition, np.Archetype, SnapsPerGame, "Tackle", np.IsPracticeSquad) + ManCoverage = PrimaryProgression(np.Progression, np.ManCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Man Coverage", np.IsPracticeSquad) + ZoneCoverage = PrimaryProgression(np.Progression, np.ZoneCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Zone Coverage", np.IsPracticeSquad) + + // Secondary + PassRush = SecondaryProgression(np.Progression, np.PassRush) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + Catching = SecondaryProgression(np.Progression, np.Catching) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + } else if archetype == "Triple-Threat" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + ThrowPower = PrimaryProgression(np.Progression, np.ThrowPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Throw Power", np.IsPracticeSquad) + ThrowAccuracy = PrimaryProgression(np.Progression, np.ThrowAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Throw Accuracy", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + KickPower = PrimaryProgression(np.Progression, np.KickPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Kick Power", np.IsPracticeSquad) + KickAccuracy = PrimaryProgression(np.Progression, np.KickAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Kick Accuracy", np.IsPracticeSquad) + PuntPower = PrimaryProgression(np.Progression, np.PuntPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Punt Power", np.IsPracticeSquad) + PuntAccuracy = PrimaryProgression(np.Progression, np.PuntAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Punt Accuracy", np.IsPracticeSquad) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + Catching = SecondaryProgression(np.Progression, np.Catching) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + RunDefense = SecondaryProgression(np.Progression, np.RunDefense) + PassRush = SecondaryProgression(np.Progression, np.PassRush) + Tackle = SecondaryProgression(np.Progression, np.Tackle) + ManCoverage = SecondaryProgression(np.Progression, np.ManCoverage) + ZoneCoverage = SecondaryProgression(np.Progression, np.ZoneCoverage) + Strength = SecondaryProgression(np.Progression, np.Strength) + } else if archetype == "Wingback" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Catching = PrimaryProgression(np.Progression, np.Catching, mostPlayedPosition, np.Archetype, SnapsPerGame, "Catching", np.IsPracticeSquad) + RouteRunning = PrimaryProgression(np.Progression, np.RouteRunning, mostPlayedPosition, np.Archetype, SnapsPerGame, "Route Running", np.IsPracticeSquad) + Carrying = PrimaryProgression(np.Progression, np.Carrying, mostPlayedPosition, np.Archetype, SnapsPerGame, "Carrying", np.IsPracticeSquad) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + RunDefense = SecondaryProgression(np.Progression, np.RunDefense) + PassRush = SecondaryProgression(np.Progression, np.PassRush) + Tackle = SecondaryProgression(np.Progression, np.Tackle) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ManCoverage = SecondaryProgression(np.Progression, np.ManCoverage) + ZoneCoverage = SecondaryProgression(np.Progression, np.ZoneCoverage) + Strength = SecondaryProgression(np.Progression, np.Strength) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + } else if archetype == "Slotback" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Catching = PrimaryProgression(np.Progression, np.Catching, mostPlayedPosition, np.Archetype, SnapsPerGame, "Catching", np.IsPracticeSquad) + RouteRunning = PrimaryProgression(np.Progression, np.RouteRunning, mostPlayedPosition, np.Archetype, SnapsPerGame, "Route Running", np.IsPracticeSquad) + PassBlock = PrimaryProgression(np.Progression, np.PassBlock, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Blocking", np.IsPracticeSquad) + RunBlock = PrimaryProgression(np.Progression, np.RunBlock, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Blocking", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + RunDefense = SecondaryProgression(np.Progression, np.RunDefense) + PassRush = SecondaryProgression(np.Progression, np.PassRush) + Tackle = SecondaryProgression(np.Progression, np.Tackle) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ManCoverage = SecondaryProgression(np.Progression, np.ManCoverage) + ZoneCoverage = SecondaryProgression(np.Progression, np.ZoneCoverage) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + } else if archetype == "Lineman" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + PassBlock = PrimaryProgression(np.Progression, np.PassBlock, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Blocking", np.IsPracticeSquad) + RunBlock = PrimaryProgression(np.Progression, np.RunBlock, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Blocking", np.IsPracticeSquad) + PassRush = PrimaryProgression(np.Progression, np.PassRush, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Rush", np.IsPracticeSquad) + RunDefense = PrimaryProgression(np.Progression, np.RunDefense, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Defense", np.IsPracticeSquad) + Tackle = PrimaryProgression(np.Progression, np.Tackle, mostPlayedPosition, np.Archetype, SnapsPerGame, "Tackle", np.IsPracticeSquad) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ManCoverage = SecondaryProgression(np.Progression, np.ManCoverage) + ZoneCoverage = SecondaryProgression(np.Progression, np.ZoneCoverage) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + Catching = SecondaryProgression(np.Progression, np.Catching) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + Speed = SecondaryProgression(np.Progression, np.Speed) + } else if archetype == "Strongside" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + PassRush = PrimaryProgression(np.Progression, np.PassRush, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Rush", np.IsPracticeSquad) + RunDefense = PrimaryProgression(np.Progression, np.RunDefense, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Defense", np.IsPracticeSquad) + Tackle = PrimaryProgression(np.Progression, np.Tackle, mostPlayedPosition, np.Archetype, SnapsPerGame, "Tackle", np.IsPracticeSquad) + ManCoverage = PrimaryProgression(np.Progression, np.ManCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Man Coverage", np.IsPracticeSquad) + ZoneCoverage = PrimaryProgression(np.Progression, np.ZoneCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Zone Coverage", np.IsPracticeSquad) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + Catching = SecondaryProgression(np.Progression, np.Catching) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + } else if archetype == "Weakside" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + PassRush = PrimaryProgression(np.Progression, np.PassRush, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Rush", np.IsPracticeSquad) + RunDefense = PrimaryProgression(np.Progression, np.RunDefense, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Defense", np.IsPracticeSquad) + Tackle = PrimaryProgression(np.Progression, np.Tackle, mostPlayedPosition, np.Archetype, SnapsPerGame, "Tackle", np.IsPracticeSquad) + ManCoverage = PrimaryProgression(np.Progression, np.ManCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Man Coverage", np.IsPracticeSquad) + ZoneCoverage = PrimaryProgression(np.Progression, np.ZoneCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Zone Coverage", np.IsPracticeSquad) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + Catching = SecondaryProgression(np.Progression, np.Catching) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + } else if archetype == "Bandit" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Strength = PrimaryProgression(np.Progression, np.Strength, mostPlayedPosition, np.Archetype, SnapsPerGame, "Strength", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + PassRush = PrimaryProgression(np.Progression, np.PassRush, mostPlayedPosition, np.Archetype, SnapsPerGame, "Pass Rush", np.IsPracticeSquad) + RunDefense = PrimaryProgression(np.Progression, np.RunDefense, mostPlayedPosition, np.Archetype, SnapsPerGame, "Run Defense", np.IsPracticeSquad) + Tackle = PrimaryProgression(np.Progression, np.Tackle, mostPlayedPosition, np.Archetype, SnapsPerGame, "Tackle", np.IsPracticeSquad) + ManCoverage = PrimaryProgression(np.Progression, np.ManCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Man Coverage", np.IsPracticeSquad) + ZoneCoverage = PrimaryProgression(np.Progression, np.ZoneCoverage, mostPlayedPosition, np.Archetype, SnapsPerGame, "Zone Coverage", np.IsPracticeSquad) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + Catching = SecondaryProgression(np.Progression, np.Catching) + RouteRunning = SecondaryProgression(np.RouteRunning, np.RouteRunning) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + } else if archetype == "Return Specialist" { + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + Carrying = PrimaryProgression(np.Progression, np.Carrying, mostPlayedPosition, np.Archetype, SnapsPerGame, "Carrying", np.IsPracticeSquad) + Catching = PrimaryProgression(np.Progression, np.Catching, mostPlayedPosition, np.Archetype, SnapsPerGame, "Catching", np.IsPracticeSquad) + RouteRunning = PrimaryProgression(np.Progression, np.RouteRunning, mostPlayedPosition, np.Archetype, SnapsPerGame, "Route Running", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + PuntPower = SecondaryProgression(np.Progression, np.PuntPower) + PuntAccuracy = SecondaryProgression(np.Progression, np.PuntAccuracy) + KickPower = SecondaryProgression(np.Progression, np.KickPower) + KickAccuracy = SecondaryProgression(np.Progression, np.KickAccuracy) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + Strength = SecondaryProgression(np.Progression, np.Strength) + } else if archetype == "Soccer Player" { + KickPower = PrimaryProgression(np.Progression, np.KickPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Kick Power", np.IsPracticeSquad) + KickAccuracy = PrimaryProgression(np.Progression, np.KickAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Kick Accuracy", np.IsPracticeSquad) + PuntPower = PrimaryProgression(np.Progression, np.PuntPower, mostPlayedPosition, np.Archetype, SnapsPerGame, "Punt Power", np.IsPracticeSquad) + PuntAccuracy = PrimaryProgression(np.Progression, np.PuntAccuracy, mostPlayedPosition, np.Archetype, SnapsPerGame, "Punt Accuracy", np.IsPracticeSquad) + Agility = PrimaryProgression(np.Progression, np.Agility, mostPlayedPosition, np.Archetype, SnapsPerGame, "Agility", np.IsPracticeSquad) + Speed = PrimaryProgression(np.Progression, np.Speed, mostPlayedPosition, np.Archetype, SnapsPerGame, "Speed", np.IsPracticeSquad) + FootballIQ = PrimaryProgression(np.Progression, np.FootballIQ, mostPlayedPosition, np.Archetype, SnapsPerGame, "Football IQ", np.IsPracticeSquad) + Catching = PrimaryProgression(np.Progression, np.Catching, mostPlayedPosition, np.Archetype, SnapsPerGame, "Catching", np.IsPracticeSquad) + RouteRunning = PrimaryProgression(np.Progression, np.RouteRunning, mostPlayedPosition, np.Archetype, SnapsPerGame, "Route Running", np.IsPracticeSquad) + Strength = SecondaryProgression(np.Progression, np.Strength) + RunBlock = SecondaryProgression(np.Progression, np.RunBlock) + PassBlock = SecondaryProgression(np.Progression, np.PassBlock) + RunDefense = SecondaryProgression(np.Progression, np.RunDefense) + PassRush = SecondaryProgression(np.Progression, np.PassRush) + Tackle = SecondaryProgression(np.Progression, np.Tackle) + ManCoverage = SecondaryProgression(np.Progression, np.ManCoverage) + ZoneCoverage = SecondaryProgression(np.Progression, np.ZoneCoverage) + ThrowPower = SecondaryProgression(np.Progression, np.ThrowPower) + ThrowAccuracy = SecondaryProgression(np.Progression, np.ThrowAccuracy) + Carrying = SecondaryProgression(np.Progression, np.Carrying) + } } ThrowPower = RegressAttribute(ThrowPower, np.Age, int(np.PrimeAge), false) @@ -1172,10 +1390,12 @@ func ProgressCollegePlayer(cp structs.CollegePlayer, SeasonID string, stats []st // If David Ross if cp.ID == 24984 { ThrowPower = PrimaryProgression(cp.Progression, cp.ThrowPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Power", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) ThrowAccuracy = PrimaryProgression(cp.Progression, cp.ThrowAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Accuracy", cp.IsRedshirting) } else { ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + FootballIQ = SecondaryProgression(cp.Progression, cp.FootballIQ) } // Primary Progressions PuntPower = PrimaryProgression(cp.Progression, cp.PuntPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Punt Power", cp.IsRedshirting) @@ -1196,7 +1416,222 @@ func ProgressCollegePlayer(cp structs.CollegePlayer, SeasonID string, stats []st Strength = SecondaryProgression(cp.Progression, cp.Strength) Speed = SecondaryProgression(cp.Progression, cp.Speed) Agility = SecondaryProgression(cp.Progression, cp.Agility) - FootballIQ = SecondaryProgression(cp.Progression, cp.FootballIQ) + } else if mostPlayedPosition == "ATH" { + // Use Archetype + archetype := cp.Archetype + if archetype == "Field General" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + ThrowPower = PrimaryProgression(cp.Progression, cp.ThrowPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Power", cp.IsRedshirting) + ThrowAccuracy = PrimaryProgression(cp.Progression, cp.ThrowAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Accuracy", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + RunDefense = PrimaryProgression(cp.Progression, cp.RunDefense, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Defense", cp.IsRedshirting) + Tackle = PrimaryProgression(cp.Progression, cp.Tackle, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Tackle", cp.IsRedshirting) + ManCoverage = PrimaryProgression(cp.Progression, cp.ManCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Man Coverage", cp.IsRedshirting) + ZoneCoverage = PrimaryProgression(cp.Progression, cp.ZoneCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Zone Coverage", cp.IsRedshirting) + + // Secondary + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + } else if archetype == "Triple-Threat" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + ThrowPower = PrimaryProgression(cp.Progression, cp.ThrowPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Power", cp.IsRedshirting) + ThrowAccuracy = PrimaryProgression(cp.Progression, cp.ThrowAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Throw Accuracy", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + KickPower = PrimaryProgression(cp.Progression, cp.KickPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Kick Power", cp.IsRedshirting) + KickAccuracy = PrimaryProgression(cp.Progression, cp.KickAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Kick Accuracy", cp.IsRedshirting) + PuntPower = PrimaryProgression(cp.Progression, cp.PuntPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Punt Power", cp.IsRedshirting) + PuntAccuracy = PrimaryProgression(cp.Progression, cp.PuntAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Punt Accuracy", cp.IsRedshirting) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + RunDefense = SecondaryProgression(cp.Progression, cp.RunDefense) + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + Tackle = SecondaryProgression(cp.Progression, cp.Tackle) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + Strength = SecondaryProgression(cp.Progression, cp.Strength) + } else if archetype == "Wingback" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Catching = PrimaryProgression(cp.Progression, cp.Catching, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Catching", cp.IsRedshirting) + RouteRunning = PrimaryProgression(cp.Progression, cp.RouteRunning, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Route Running", cp.IsRedshirting) + Carrying = PrimaryProgression(cp.Progression, cp.Carrying, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Carrying", cp.IsRedshirting) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + RunDefense = SecondaryProgression(cp.Progression, cp.RunDefense) + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + Tackle = SecondaryProgression(cp.Progression, cp.Tackle) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + Strength = SecondaryProgression(cp.Progression, cp.Strength) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + } else if archetype == "Slotback" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Catching = PrimaryProgression(cp.Progression, cp.Catching, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Catching", cp.IsRedshirting) + RouteRunning = PrimaryProgression(cp.Progression, cp.RouteRunning, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Route Running", cp.IsRedshirting) + PassBlock = PrimaryProgression(cp.Progression, cp.PassBlock, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Blocking", cp.IsRedshirting) + RunBlock = PrimaryProgression(cp.Progression, cp.RunBlock, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Blocking", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + RunDefense = SecondaryProgression(cp.Progression, cp.RunDefense) + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + Tackle = SecondaryProgression(cp.Progression, cp.Tackle) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + } else if archetype == "Lineman" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + PassBlock = PrimaryProgression(cp.Progression, cp.PassBlock, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Blocking", cp.IsRedshirting) + RunBlock = PrimaryProgression(cp.Progression, cp.RunBlock, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Blocking", cp.IsRedshirting) + PassRush = PrimaryProgression(cp.Progression, cp.PassRush, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Rush", cp.IsRedshirting) + RunDefense = PrimaryProgression(cp.Progression, cp.RunDefense, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Defense", cp.IsRedshirting) + Tackle = PrimaryProgression(cp.Progression, cp.Tackle, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Tackle", cp.IsRedshirting) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + Speed = SecondaryProgression(cp.Progression, cp.Speed) + } else if archetype == "Strongside" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + PassRush = PrimaryProgression(cp.Progression, cp.PassRush, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Rush", cp.IsRedshirting) + RunDefense = PrimaryProgression(cp.Progression, cp.RunDefense, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Defense", cp.IsRedshirting) + Tackle = PrimaryProgression(cp.Progression, cp.Tackle, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Tackle", cp.IsRedshirting) + ManCoverage = PrimaryProgression(cp.Progression, cp.ManCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Man Coverage", cp.IsRedshirting) + ZoneCoverage = PrimaryProgression(cp.Progression, cp.ZoneCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Zone Coverage", cp.IsRedshirting) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + } else if archetype == "Weakside" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + PassRush = PrimaryProgression(cp.Progression, cp.PassRush, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Rush", cp.IsRedshirting) + RunDefense = PrimaryProgression(cp.Progression, cp.RunDefense, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Defense", cp.IsRedshirting) + Tackle = PrimaryProgression(cp.Progression, cp.Tackle, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Tackle", cp.IsRedshirting) + ManCoverage = PrimaryProgression(cp.Progression, cp.ManCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Man Coverage", cp.IsRedshirting) + ZoneCoverage = PrimaryProgression(cp.Progression, cp.ZoneCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Zone Coverage", cp.IsRedshirting) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + } else if archetype == "Bandit" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Strength = PrimaryProgression(cp.Progression, cp.Strength, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Strength", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + PassRush = PrimaryProgression(cp.Progression, cp.PassRush, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Pass Rush", cp.IsRedshirting) + RunDefense = PrimaryProgression(cp.Progression, cp.RunDefense, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Run Defense", cp.IsRedshirting) + Tackle = PrimaryProgression(cp.Progression, cp.Tackle, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Tackle", cp.IsRedshirting) + ManCoverage = PrimaryProgression(cp.Progression, cp.ManCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Man Coverage", cp.IsRedshirting) + ZoneCoverage = PrimaryProgression(cp.Progression, cp.ZoneCoverage, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Zone Coverage", cp.IsRedshirting) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + Catching = SecondaryProgression(cp.Progression, cp.Catching) + RouteRunning = SecondaryProgression(cp.RouteRunning, cp.RouteRunning) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + } else if archetype == "Return Specialist" { + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + Carrying = PrimaryProgression(cp.Progression, cp.Carrying, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Carrying", cp.IsRedshirting) + Catching = PrimaryProgression(cp.Progression, cp.Catching, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Catching", cp.IsRedshirting) + RouteRunning = PrimaryProgression(cp.Progression, cp.RouteRunning, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Route Running", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + PuntPower = SecondaryProgression(cp.Progression, cp.PuntPower) + PuntAccuracy = SecondaryProgression(cp.Progression, cp.PuntAccuracy) + KickPower = SecondaryProgression(cp.Progression, cp.KickPower) + KickAccuracy = SecondaryProgression(cp.Progression, cp.KickAccuracy) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + Strength = SecondaryProgression(cp.Progression, cp.Strength) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + Tackle = SecondaryProgression(cp.Progression, cp.Tackle) + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + RunDefense = SecondaryProgression(cp.Progression, cp.RunDefense) + } else if archetype == "Soccer Player" { + KickPower = PrimaryProgression(cp.Progression, cp.KickPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Kick Power", cp.IsRedshirting) + KickAccuracy = PrimaryProgression(cp.Progression, cp.KickAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Kick Accuracy", cp.IsRedshirting) + PuntPower = PrimaryProgression(cp.Progression, cp.PuntPower, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Punt Power", cp.IsRedshirting) + PuntAccuracy = PrimaryProgression(cp.Progression, cp.PuntAccuracy, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Punt Accuracy", cp.IsRedshirting) + Agility = PrimaryProgression(cp.Progression, cp.Agility, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Agility", cp.IsRedshirting) + Speed = PrimaryProgression(cp.Progression, cp.Speed, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Speed", cp.IsRedshirting) + FootballIQ = PrimaryProgression(cp.Progression, cp.FootballIQ, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Football IQ", cp.IsRedshirting) + Catching = PrimaryProgression(cp.Progression, cp.Catching, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Catching", cp.IsRedshirting) + RouteRunning = PrimaryProgression(cp.Progression, cp.RouteRunning, mostPlayedPosition, cp.Archetype, SnapsPerGame, "Route Running", cp.IsRedshirting) + Strength = SecondaryProgression(cp.Progression, cp.Strength) + RunBlock = SecondaryProgression(cp.Progression, cp.RunBlock) + PassBlock = SecondaryProgression(cp.Progression, cp.PassBlock) + RunDefense = SecondaryProgression(cp.Progression, cp.RunDefense) + PassRush = SecondaryProgression(cp.Progression, cp.PassRush) + Tackle = SecondaryProgression(cp.Progression, cp.Tackle) + ManCoverage = SecondaryProgression(cp.Progression, cp.ManCoverage) + ZoneCoverage = SecondaryProgression(cp.Progression, cp.ZoneCoverage) + ThrowPower = SecondaryProgression(cp.Progression, cp.ThrowPower) + ThrowAccuracy = SecondaryProgression(cp.Progression, cp.ThrowAccuracy) + Carrying = SecondaryProgression(cp.Progression, cp.Carrying) + } } progressions := structs.CollegePlayerProgressions{ diff --git a/managers/StandingsManager.go b/managers/StandingsManager.go index eaa01e0..d886708 100644 --- a/managers/StandingsManager.go +++ b/managers/StandingsManager.go @@ -273,10 +273,14 @@ func GetStandingsHistoryByTeamID(id string) []structs.CollegeStandings { }) } -func GenerateCollegeStandings() { +func GenerateNewSeasonStandings() { db := dbprovider.GetInstance().GetDB() ts := GetTimestamp() teams := GetAllCollegeTeams() + collegeStandings := []structs.CollegeStandings{} + nflStandings := []structs.NFLStandings{} + + nflTeams := GetAllNFLTeams() for _, t := range teams { if !t.IsActive { @@ -307,6 +311,28 @@ func GenerateCollegeStandings() { }, } - db.Create(&standings) + collegeStandings = append(collegeStandings, standings) + } + repository.CreateCFBStandingsBatch(db, collegeStandings, 100) + + for _, t := range nflTeams { + + standings := structs.NFLStandings{ + TeamID: t.ID, + TeamName: t.TeamName, + SeasonID: uint(ts.CollegeSeasonID), + Season: uint(ts.Season), + ConferenceID: t.ConferenceID, + ConferenceName: t.Conference, + PostSeasonStatus: "None", + DivisionID: t.DivisionID, + BaseStandings: structs.BaseStandings{ + Coach: t.Coach, + TeamAbbr: t.TeamAbbr, + }, + } + + nflStandings = append(nflStandings, standings) } + repository.CreateNFLStandingsBatch(db, nflStandings, 20) } diff --git a/repository/CreateCommands.go b/repository/CreateCommands.go index 613a544..974d968 100644 --- a/repository/CreateCommands.go +++ b/repository/CreateCommands.go @@ -137,6 +137,21 @@ func CreateNFLDrafteesInBatches(db *gorm.DB, draftees []models.NFLDraftee, batch return nil } +func CreateCFBRecruitProfileRecordsBatch(db *gorm.DB, profiles []structs.RecruitPlayerProfile, batchSize int) error { + total := len(profiles) + for i := 0; i < total; i += batchSize { + end := i + batchSize + if end > total { + end = total + } + + if err := db.CreateInBatches(profiles[i:end], batchSize).Error; err != nil { + return err + } + } + return nil +} + func CreateCFBRecruitRecordsBatch(db *gorm.DB, croots []structs.Recruit, batchSize int) error { total := len(croots) for i := 0; i < total; i += batchSize { @@ -397,10 +412,37 @@ func CreatePreDraftEventResultsBatch(db *gorm.DB, events []models.EventResults, if end > total { end = total } - if err := db.CreateInBatches(events[i:end], batchSize).Error; err != nil { return err } } return nil } + +func CreateCFBStandingsBatch(db *gorm.DB, standings []structs.CollegeStandings, batchSize int) error { + total := len(standings) + end := i + batchSize + if end > total { + end = total + } + if err := db.CreateInBatches(standings[i:end], batchSize).Error; err != nil { + return err + } + } + return nil +} + +func CreateNFLStandingsBatch(db *gorm.DB, standings []structs.NFLStandings, batchSize int) error { + total := len(standings) + for i := 0; i < total; i += batchSize { + end := i + batchSize + if end > total { + end = total + } + + if err := db.CreateInBatches(standings[i:end], batchSize).Error; err != nil { + return err + } + } + return nil +} diff --git a/repository/FreeAgentRepository.go b/repository/FreeAgentRepository.go index 7974022..a57fb53 100644 --- a/repository/FreeAgentRepository.go +++ b/repository/FreeAgentRepository.go @@ -1,8 +1,11 @@ package repository import ( + "log" + "github.com/CalebRose/SimFBA/dbprovider" "github.com/CalebRose/SimFBA/structs" + "gorm.io/gorm" ) type FreeAgencyQuery struct { @@ -69,3 +72,10 @@ func FindAllWaiverOffers(clauses FreeAgencyQuery) []structs.NFLWaiverOffer { return offers } + +func SaveFreeAgencyOfferRecord(contract structs.FreeAgencyOffer, db *gorm.DB) { + err := db.Save(&contract).Error + if err != nil { + log.Panicln("Could not save offer record") + } +} diff --git a/secrets/config.go b/secrets/config.go index 740d5c7..c9e2d0e 100644 --- a/secrets/config.go +++ b/secrets/config.go @@ -1072,3 +1072,353 @@ func RivalsModifiers() []int { 3, 3, 3, 3, 3, } } + +func ReversedATHAttributes() map[string]map[string][]float64 { + return map[string]map[string][]float64{ + "Speed": { + "A+": {65, 5}, + "A": {60, 5}, + "A-": {57.5, 5}, + "B+": {55, 5}, + "B": {50, 5}, + "B-": {47.5, 5}, + "C+": {45, 5}, + "C": {40, 5}, + "C-": {35, 5}, + "D+": {32.5, 5}, + "D": {30, 5}, + "D-": {25, 5}, + "F": {20, 5}, + }, + "FootballIQ": { + "A+": {50, 4}, + "A": {46, 4}, + "A-": {44, 4}, + "B+": {42, 4}, + "B": {40, 4}, + "B-": {38, 4}, + "C+": {36, 4}, + "C": {34, 4}, + "C-": {32, 4}, + "D+": {30, 4}, + "D": {28, 4}, + "D-": {26, 4}, + "F": {20, 4}, + }, + "Agility": { + "A+": {55, 4}, + "A": {51, 4}, + "A-": {49, 4}, + "B+": {47, 4}, + "B": {45, 4}, + "B-": {43, 4}, + "C+": {41, 4}, + "C": {39, 4}, + "C-": {37, 4}, + "D+": {35, 4}, + "D": {33, 4}, + "D-": {31, 4}, + "F": {25, 4}, + }, + "Carrying": { + "A+": {42.5, 3.5}, + "A": {39, 3.5}, + "A-": {37.25, 3.5}, + "B+": {35.5, 3.5}, + "B": {33.75, 3.5}, + "B-": {32, 3.5}, + "C+": {30.25, 3.5}, + "C": {28.5, 3.5}, + "C-": {26.75, 3.5}, + "D+": {25, 3.5}, + "D": {23.25, 3.5}, + "D-": {21.5, 3.5}, + "F": {19.75, 3.5}, + }, + "Catching": { + "A+": {37.5, 4}, + "A": {34, 4}, + "A-": {32.5, 4}, + "B+": {31, 4}, + "B": {29.5, 4}, + "B-": {28, 4}, + "C+": {26.5, 4}, + "C": {25, 4}, + "C-": {23.5, 4}, + "D+": {22, 4}, + "D": {20.5, 4}, + "D-": {19, 4}, + "F": {17.5, 4}, + }, + "RouteRunning": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "ZoneCoverage": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "ManCoverage": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "Strength": { + "A+": {50, 4}, + "A": {46, 4}, + "A-": {44, 4}, + "B+": {42, 4}, + "B": {40, 4}, + "B-": {38, 4}, + "C+": {36, 4}, + "C": {34, 4}, + "C-": {32, 4}, + "D+": {30, 4}, + "D": {28, 4}, + "D-": {26, 4}, + "F": {20, 4}, + }, + "Tackle": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "PassBlock": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "RunBlock": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "PassRush": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "RunDefense": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "ThrowPower": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "ThrowAccuracy": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "KickPower": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "KickAccuracy": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "PuntPower": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "PuntAccuracy": { + "A+": {35, 3}, + "A": {32, 3}, + "A-": {30.5, 3}, + "B+": {29, 3}, + "B": {27.5, 3}, + "B-": {26, 3}, + "C+": {24.5, 3}, + "C": {23, 3}, + "C-": {21.5, 3}, + "D+": {20, 3}, + "D": {18.5, 3}, + "D-": {17, 3}, + "F": {15.5, 3}, + }, + "Stamina": { + "A+": {87.5, 4}, + "A": {80, 4}, + "A-": {76.25, 4}, + "B+": {72.5, 4}, + "B": {68.75, 4}, + "B-": {65, 4}, + "C+": {61.25, 4}, + "C": {57.5, 4}, + "C-": {53.75, 4}, + "D+": {50, 4}, + "D": {46.25, 4}, + "D-": {42.5, 4}, + "F": {38.75, 4}, + }, + "Injury": { + "A+": {87.5, 4}, + "A": {80, 4}, + "A-": {76.25, 4}, + "B+": {72.5, 4}, + "B": {68.75, 4}, + "B-": {65, 4}, + "C+": {61.25, 4}, + "C": {57.5, 4}, + "C-": {53.75, 4}, + "D+": {50, 4}, + "D": {46.25, 4}, + "D-": {42.5, 4}, + "F": {38.75, 4}, + }, + "PotentialGrade": { + "A+": {85, 4}, + "A": {80, 4}, + "A-": {75, 4}, + "B+": {70, 4}, + "B": {65, 4}, + "B-": {60, 4}, + "C+": {55, 4}, + "C": {50, 4}, + "C-": {45, 4}, + "D+": {40, 4}, + "D": {35, 4}, + "D-": {30, 4}, + "F": {25, 4}, + }, + } +} diff --git a/structs/BasePlayer.go b/structs/BasePlayer.go index ddf2aaf..c54b818 100644 --- a/structs/BasePlayer.go +++ b/structs/BasePlayer.go @@ -224,3 +224,33 @@ func (bp *BasePlayer) DesignateNewPosition(pos, arch string) { bp.PositionTwo = pos bp.ArchetypeTwo = arch } + +func (bp *BasePlayer) ApplyFixedATHAttributes(fIQ, spe, agi, car, cat, rr, zc, mc, str, tack, pb, rb, pr, rd, tp, ta, ka, kp, pa, pp int) { + bp.FootballIQ = fIQ + bp.Speed = spe + bp.Agility = agi + bp.Carrying = car + bp.Catching = cat + bp.RouteRunning = rr + bp.ZoneCoverage = zc + bp.ManCoverage = mc + bp.Strength = str + bp.Tackle = tack + bp.PassBlock = pb + bp.RunBlock = rb + bp.PassRush = pr + bp.RunDefense = rd + bp.ThrowPower = tp + bp.ThrowAccuracy = ta + bp.KickAccuracy = ka + bp.KickPower = kp + bp.PuntAccuracy = pa + bp.PuntPower = pp +} + +func (bp *BasePlayer) RevertAge() { + bp.Age-- + if bp.Age < 18 { + bp.Age = 18 + } +} diff --git a/structs/BaseTeam.go b/structs/BaseTeam.go index 06d2bae..f06c245 100644 --- a/structs/BaseTeam.go +++ b/structs/BaseTeam.go @@ -1,5 +1,7 @@ package structs +import "time" + type JerseyDTO struct { TeamID string JerseyType uint8 @@ -29,6 +31,11 @@ type BaseTeam struct { SpecialTeamsGrade string PenaltyMarks uint8 JerseyType uint8 + LastLogin time.Time +} + +func (bt *BaseTeam) UpdateLatestInstance() { + bt.LastLogin = time.Now() } func (bt *BaseTeam) RemoveUserFromTeam() { diff --git a/structs/CollegePlayer.go b/structs/CollegePlayer.go index cd0173a..853ad64 100644 --- a/structs/CollegePlayer.go +++ b/structs/CollegePlayer.go @@ -144,13 +144,27 @@ func (cp *CollegePlayer) GetOverall() { (0.45 * float64(cp.PuntAccuracy)) cp.Overall = int(ovr) } else if cp.Position == "ATH" { - ovr = (float64(cp.FootballIQ) + float64(cp.Speed) + float64(cp.Agility) + - float64(cp.Carrying) + float64(cp.Catching) + float64(cp.RouteRunning) + - float64(cp.RunBlock) + float64(cp.PassBlock) + float64(cp.PassRush) + - float64(cp.RunDefense) + float64(cp.Tackle) + float64(cp.Strength) + - float64(cp.ZoneCoverage) + float64(cp.ManCoverage) + float64(cp.ThrowAccuracy) + - float64(cp.ThrowPower) + float64(cp.PuntAccuracy) + float64(cp.PuntPower) + - float64(cp.KickAccuracy) + float64(cp.KickPower)) / 20 + if cp.Archetype == "Field General" { + ovr = (.20 * float64(cp.FootballIQ)) + (.1 * float64(cp.ZoneCoverage)) + (.1 * float64(cp.ManCoverage)) + (.1 * float64(cp.RunDefense)) + (.1 * float64(cp.Speed)) + (.1 * float64(cp.Strength)) + (.1 * float64(cp.Tackle)) + (.1 * float64(cp.ThrowPower)) + (.1 * float64(cp.ThrowAccuracy)) + } else if cp.Archetype == "Triple-Threat" { + ovr = (.10 * float64(cp.FootballIQ)) + (.2 * float64(cp.Agility)) + (.1 * float64(cp.Carrying)) + (.1 * float64(cp.Catching)) + (.2 * float64(cp.Speed)) + (.1 * float64(cp.RouteRunning)) + (.1 * float64(cp.ThrowPower)) + (.1 * float64(cp.ThrowAccuracy)) + } else if cp.Archetype == "Wingback" { + ovr = (.1 * float64(cp.FootballIQ)) + (.2 * float64(cp.Agility)) + (.1 * float64(cp.Carrying)) + (.2 * float64(cp.Catching)) + (.2 * float64(cp.Speed)) + (.1 * float64(cp.RouteRunning)) + (.1 * float64(cp.RunBlock)) + } else if cp.Archetype == "Slotback" { + ovr = (.1 * float64(cp.FootballIQ)) + (.1 * float64(cp.Agility)) + (.1 * float64(cp.Carrying)) + (.1 * float64(cp.Catching)) + (.2 * float64(cp.Speed)) + (.1 * float64(cp.RouteRunning)) + (.1 * float64(cp.RunBlock)) + (.1 * float64(cp.PassBlock)) + (.1 * float64(cp.Strength)) + } else if cp.Archetype == "Lineman" { + ovr = (.1 * float64(cp.FootballIQ)) + (.1 * float64(cp.Agility)) + (.1 * float64(cp.RunBlock)) + (.1 * float64(cp.PassBlock)) + (.3 * float64(cp.Strength)) + (.1 * float64(cp.PassRush)) + (.1 * float64(cp.RunDefense)) + (.1 * float64(cp.Tackle)) + } else if cp.Archetype == "Strongside" { + ovr = (.1 * float64(cp.FootballIQ)) + (.1 * float64(cp.Agility)) + (.1 * float64(cp.ZoneCoverage)) + (.1 * float64(cp.ManCoverage)) + (.2 * float64(cp.Strength)) + (.1 * float64(cp.PassRush)) + (.1 * float64(cp.RunDefense)) + (.1 * float64(cp.Tackle)) + (.1 * float64(cp.Speed)) + } else if cp.Archetype == "Weakside" { + ovr = (.1 * float64(cp.FootballIQ)) + (.1 * float64(cp.Agility)) + (.1 * float64(cp.ZoneCoverage)) + (.1 * float64(cp.ManCoverage)) + (.1 * float64(cp.Strength)) + (.1 * float64(cp.PassRush)) + (.1 * float64(cp.RunDefense)) + (.1 * float64(cp.Tackle)) + (.2 * float64(cp.Speed)) + } else if cp.Archetype == "Bandit" { + ovr = (.1 * float64(cp.FootballIQ)) + (.1 * float64(cp.Agility)) + (.1 * float64(cp.ZoneCoverage)) + (.1 * float64(cp.ManCoverage)) + (.1 * float64(cp.Strength)) + (.1 * float64(cp.PassRush)) + (.1 * float64(cp.RunDefense)) + (.1 * float64(cp.Tackle)) + (.2 * float64(cp.Speed)) + } else if cp.Archetype == "Return Specialist" { + ovr = (.20 * float64(cp.FootballIQ)) + (.10 * float64(cp.Strength)) + (.20 * float64(cp.Speed)) + (.20 * float64(cp.Agility)) + (.20 * float64(cp.Catching)) + (.1 * float64(cp.Tackle)) + } else if cp.Archetype == "Soccer Player" { + ovr = (.10 * float64(cp.FootballIQ)) + (.10 * float64(cp.Agility)) + (.2 * float64(cp.KickPower)) + (.2 * float64(cp.KickAccuracy)) + (.2 * float64(cp.PuntPower)) + (.2 * float64(cp.PuntAccuracy)) + } cp.Overall = int(ovr) } } @@ -343,3 +357,13 @@ func (cp *CollegePlayer) SignWithNewTeam(teamID int, teamAbbr string) { func (cp *CollegePlayer) AddSeasonStats(seasonStats CollegePlayerSeasonStats) { cp.SeasonStats = seasonStats } + +func (cp *CollegePlayer) RevertRedshirting(isRS bool) { + cp.IsRedshirt = false + cp.IsRedshirting = isRS +} + +func (cp *CollegePlayer) RevertYearProgression() { + cp.RevertAge() + cp.Year-- +} diff --git a/structs/FreeAgencyOffer.go b/structs/FreeAgencyOffer.go index 3afd245..a9eb318 100644 --- a/structs/FreeAgencyOffer.go +++ b/structs/FreeAgencyOffer.go @@ -42,7 +42,21 @@ type FreeAgencyOffer struct { ContractValue float64 BonusPercentage float64 AAV float64 + Syncs uint8 IsActive bool + IsRejected bool +} + +func (o *FreeAgencyOffer) IncrementSyncs() { + o.Syncs++ +} + +func (f *FreeAgencyOffer) DeactivateOffer() { + f.IsActive = false +} + +func (f *FreeAgencyOffer) RejectOffer() { + f.IsRejected = true } func (f *FreeAgencyOffer) CalculateOffer(offer FreeAgencyOfferDTO) { diff --git a/structs/Timestamp.go b/structs/Timestamp.go index 662b66e..e3d8760 100644 --- a/structs/Timestamp.go +++ b/structs/Timestamp.go @@ -97,6 +97,8 @@ func (t *Timestamp) MoveUpSeason() { t.CollegeWeek = 0 t.NFLWeek = 0 t.NFLSeasonID++ + t.CollegeWeekID = (((t.CollegeSeasonID + 2020) - 2000) * 100) + t.NFLWeekID = (((t.CollegeSeasonID + 2020) - 2000) * 100) t.Y1Capspace = t.Y2Capspace t.Y2Capspace = t.Y3Capspace t.Y3Capspace = t.Y4Capspace diff --git a/ts/footballModels.ts b/ts/footballModels.ts index 1b6e6b1..2f06455 100644 --- a/ts/footballModels.ts +++ b/ts/footballModels.ts @@ -1,72 +1,6 @@ /* Do not change, this code is generated from Golang structs */ -export class FaceDataResponse { - PlayerID: number; - Accessories: string; - Body: string; - Ear: string; - Eye: string; - EyeLine: string; - Eyebrow: string; - FacialHair: string; - Glasses: string; - Hair: string; - HairBG: string; - HairFlip: boolean; - Head: string; - Jersey: string; - MiscLine: string; - Mouth: string; - MouthFlip: boolean; - Nose: string; - NoseFlip: boolean; - SmileLine: string; - BodySize: number; - EarSize: number; - EyeAngle: number; - EyeBrowAngle: number; - FaceSize: number; - FacialHairShave: string; - NoseSize: number; - SmileLineSize: number; - SkinColor: string; - HairColor: string; - - constructor(source: any = {}) { - if ('string' === typeof source) source = JSON.parse(source); - this.PlayerID = source["PlayerID"]; - this.Accessories = source["Accessories"]; - this.Body = source["Body"]; - this.Ear = source["Ear"]; - this.Eye = source["Eye"]; - this.EyeLine = source["EyeLine"]; - this.Eyebrow = source["Eyebrow"]; - this.FacialHair = source["FacialHair"]; - this.Glasses = source["Glasses"]; - this.Hair = source["Hair"]; - this.HairBG = source["HairBG"]; - this.HairFlip = source["HairFlip"]; - this.Head = source["Head"]; - this.Jersey = source["Jersey"]; - this.MiscLine = source["MiscLine"]; - this.Mouth = source["Mouth"]; - this.MouthFlip = source["MouthFlip"]; - this.Nose = source["Nose"]; - this.NoseFlip = source["NoseFlip"]; - this.SmileLine = source["SmileLine"]; - this.BodySize = source["BodySize"]; - this.EarSize = source["EarSize"]; - this.EyeAngle = source["EyeAngle"]; - this.EyeBrowAngle = source["EyeBrowAngle"]; - this.FaceSize = source["FaceSize"]; - this.FacialHairShave = source["FacialHairShave"]; - this.NoseSize = source["NoseSize"]; - this.SmileLineSize = source["SmileLineSize"]; - this.SkinColor = source["SkinColor"]; - this.HairColor = source["HairColor"]; - } -} export class NFLStandings { ID: number; CreatedAt: Time; @@ -587,7 +521,9 @@ export class FreeAgencyOffer { ContractValue: number; BonusPercentage: number; AAV: number; + Syncs: number; IsActive: boolean; + IsRejected: boolean; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); @@ -614,7 +550,9 @@ export class FreeAgencyOffer { this.ContractValue = source["ContractValue"]; this.BonusPercentage = source["BonusPercentage"]; this.AAV = source["AAV"]; + this.Syncs = source["Syncs"]; this.IsActive = source["IsActive"]; + this.IsRejected = source["IsRejected"]; } convertValues(a: any, classs: any, asMap: boolean = false): any { @@ -1931,6 +1869,7 @@ export class NFLTeam { SpecialTeamsGrade: string; PenaltyMarks: number; JerseyType: number; + LastLogin: Time; ConferenceID: number; Conference: string; DivisionID: number; @@ -1983,6 +1922,7 @@ export class NFLTeam { this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; this.PenaltyMarks = source["PenaltyMarks"]; this.JerseyType = source["JerseyType"]; + this.LastLogin = this.convertValues(source["LastLogin"], Time); this.ConferenceID = source["ConferenceID"]; this.Conference = source["Conference"]; this.DivisionID = source["DivisionID"]; @@ -4421,6 +4361,7 @@ export class CollegeTeam { SpecialTeamsGrade: string; PenaltyMarks: number; JerseyType: number; + LastLogin: Time; ConferenceID: number; Conference: string; DivisionID: number; @@ -4470,6 +4411,7 @@ export class CollegeTeam { this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; this.PenaltyMarks = source["PenaltyMarks"]; this.JerseyType = source["JerseyType"]; + this.LastLogin = this.convertValues(source["LastLogin"], Time); this.ConferenceID = source["ConferenceID"]; this.Conference = source["Conference"]; this.DivisionID = source["DivisionID"]; @@ -4526,7 +4468,6 @@ export class BootstrapData { ProNotifications: Notification[]; NFLGameplan: NFLGameplan; NFLDepthChart: NFLDepthChart; - FaceData: {[key: uint]: FaceDataResponse}; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); @@ -4546,7 +4487,6 @@ export class BootstrapData { this.ProNotifications = this.convertValues(source["ProNotifications"], Notification); this.NFLGameplan = this.convertValues(source["NFLGameplan"], NFLGameplan); this.NFLDepthChart = this.convertValues(source["NFLDepthChart"], NFLDepthChart); - this.FaceData = this.convertValues(source["FaceData"], FaceDataResponse, true); } convertValues(a: any, classs: any, asMap: boolean = false): any { @@ -4907,78 +4847,356 @@ export class BootstrapDataTwo { return a; } } -export class LeadingTeams { - TeamID: number; - TeamName: string; - TeamAbbr: string; - Odds: number; - HasScholarship: boolean; +export class FaceDataResponse { + PlayerID: number; + Accessories: string; + Body: string; + Ear: string; + Eye: string; + EyeLine: string; + Eyebrow: string; + FacialHair: string; + Glasses: string; + Hair: string; + HairBG: string; + HairFlip: boolean; + Head: string; + Jersey: string; + MiscLine: string; + Mouth: string; + MouthFlip: boolean; + Nose: string; + NoseFlip: boolean; + SmileLine: string; + BodySize: number; + EarSize: number; + EyeAngle: number; + EyeBrowAngle: number; + FaceSize: number; + FacialHairShave: string; + NoseSize: number; + SmileLineSize: number; + SkinColor: string; + HairColor: string; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); - this.TeamID = source["TeamID"]; - this.TeamName = source["TeamName"]; - this.TeamAbbr = source["TeamAbbr"]; - this.Odds = source["Odds"]; - this.HasScholarship = source["HasScholarship"]; + this.PlayerID = source["PlayerID"]; + this.Accessories = source["Accessories"]; + this.Body = source["Body"]; + this.Ear = source["Ear"]; + this.Eye = source["Eye"]; + this.EyeLine = source["EyeLine"]; + this.Eyebrow = source["Eyebrow"]; + this.FacialHair = source["FacialHair"]; + this.Glasses = source["Glasses"]; + this.Hair = source["Hair"]; + this.HairBG = source["HairBG"]; + this.HairFlip = source["HairFlip"]; + this.Head = source["Head"]; + this.Jersey = source["Jersey"]; + this.MiscLine = source["MiscLine"]; + this.Mouth = source["Mouth"]; + this.MouthFlip = source["MouthFlip"]; + this.Nose = source["Nose"]; + this.NoseFlip = source["NoseFlip"]; + this.SmileLine = source["SmileLine"]; + this.BodySize = source["BodySize"]; + this.EarSize = source["EarSize"]; + this.EyeAngle = source["EyeAngle"]; + this.EyeBrowAngle = source["EyeBrowAngle"]; + this.FaceSize = source["FaceSize"]; + this.FacialHairShave = source["FacialHairShave"]; + this.NoseSize = source["NoseSize"]; + this.SmileLineSize = source["SmileLineSize"]; + this.SkinColor = source["SkinColor"]; + this.HairColor = source["HairColor"]; } } -export class Croot { +export class NFLDraftee { ID: number; - PlayerID: number; - TeamID: number; - College: string; + CreatedAt: Time; + UpdatedAt: Time; + DeletedAt: Time; FirstName: string; LastName: string; Position: string; Archetype: string; + PreviousTeamID: number; + PreviousTeam: string; Height: number; Weight: number; + Age: number; Stars: number; + Overall: number; + Stamina: number; + Injury: number; + FootballIQ: number; + Speed: number; + Carrying: number; + Agility: number; + Catching: number; + RouteRunning: number; + ZoneCoverage: number; + ManCoverage: number; + Strength: number; + Tackle: number; + PassBlock: number; + RunBlock: number; + PassRush: number; + RunDefense: number; + ThrowPower: number; + ThrowAccuracy: number; + KickAccuracy: number; + KickPower: number; + PuntAccuracy: number; + PuntPower: number; + Progression: number; + Discipline: number; PotentialGrade: string; + FreeAgency: string; Personality: string; RecruitingBias: string; - AcademicBias: string; WorkEthic: string; + AcademicBias: string; + IsInjured: boolean; + InjuryName: string; + InjuryType: string; + WeeksOfRecovery: number; + InjuryReserve: boolean; + PrimeAge: number; + Clutch: number; + Shotgun: number; + PositionTwo: string; + ArchetypeTwo: string; + RelativeID: number; + RelativeType: number; + Notes: string; + PlayerID: number; HighSchool: string; + CollegeID: number; + College: string; + DraftedTeamID: number; + DraftedTeam: string; + DraftedRound: number; + DraftPickID: number; + DraftedPick: number; City: string; State: string; - AffinityOne: string; - AffinityTwo: string; - RecruitingStatus: string; - RecruitModifier: number; - IsCustomCroot: boolean; - CustomCrootFor: string; - IsSigned: boolean; OverallGrade: string; - TotalRank: number; - LeadingTeams: LeadingTeams[]; + StaminaGrade: string; + InjuryGrade: string; + FootballIQGrade: string; + SpeedGrade: string; + CarryingGrade: string; + AgilityGrade: string; + CatchingGrade: string; + RouteRunningGrade: string; + ZoneCoverageGrade: string; + ManCoverageGrade: string; + StrengthGrade: string; + TackleGrade: string; + PassBlockGrade: string; + RunBlockGrade: string; + PassRushGrade: string; + RunDefenseGrade: string; + ThrowPowerGrade: string; + ThrowAccuracyGrade: string; + KickAccuracyGrade: string; + KickPowerGrade: string; + PuntAccuracyGrade: string; + PuntPowerGrade: string; + BoomOrBust: boolean; + BoomOrBustStatus: string; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); this.ID = source["ID"]; - this.PlayerID = source["PlayerID"]; - this.TeamID = source["TeamID"]; - this.College = source["College"]; + this.CreatedAt = this.convertValues(source["CreatedAt"], Time); + this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); + this.DeletedAt = this.convertValues(source["DeletedAt"], Time); this.FirstName = source["FirstName"]; this.LastName = source["LastName"]; this.Position = source["Position"]; this.Archetype = source["Archetype"]; + this.PreviousTeamID = source["PreviousTeamID"]; + this.PreviousTeam = source["PreviousTeam"]; this.Height = source["Height"]; this.Weight = source["Weight"]; + this.Age = source["Age"]; this.Stars = source["Stars"]; - this.PotentialGrade = source["PotentialGrade"]; - this.Personality = source["Personality"]; - this.RecruitingBias = source["RecruitingBias"]; - this.AcademicBias = source["AcademicBias"]; - this.WorkEthic = source["WorkEthic"]; - this.HighSchool = source["HighSchool"]; - this.City = source["City"]; - this.State = source["State"]; - this.AffinityOne = source["AffinityOne"]; - this.AffinityTwo = source["AffinityTwo"]; - this.RecruitingStatus = source["RecruitingStatus"]; - this.RecruitModifier = source["RecruitModifier"]; + this.Overall = source["Overall"]; + this.Stamina = source["Stamina"]; + this.Injury = source["Injury"]; + this.FootballIQ = source["FootballIQ"]; + this.Speed = source["Speed"]; + this.Carrying = source["Carrying"]; + this.Agility = source["Agility"]; + this.Catching = source["Catching"]; + this.RouteRunning = source["RouteRunning"]; + this.ZoneCoverage = source["ZoneCoverage"]; + this.ManCoverage = source["ManCoverage"]; + this.Strength = source["Strength"]; + this.Tackle = source["Tackle"]; + this.PassBlock = source["PassBlock"]; + this.RunBlock = source["RunBlock"]; + this.PassRush = source["PassRush"]; + this.RunDefense = source["RunDefense"]; + this.ThrowPower = source["ThrowPower"]; + this.ThrowAccuracy = source["ThrowAccuracy"]; + this.KickAccuracy = source["KickAccuracy"]; + this.KickPower = source["KickPower"]; + this.PuntAccuracy = source["PuntAccuracy"]; + this.PuntPower = source["PuntPower"]; + this.Progression = source["Progression"]; + this.Discipline = source["Discipline"]; + this.PotentialGrade = source["PotentialGrade"]; + this.FreeAgency = source["FreeAgency"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.WorkEthic = source["WorkEthic"]; + this.AcademicBias = source["AcademicBias"]; + this.IsInjured = source["IsInjured"]; + this.InjuryName = source["InjuryName"]; + this.InjuryType = source["InjuryType"]; + this.WeeksOfRecovery = source["WeeksOfRecovery"]; + this.InjuryReserve = source["InjuryReserve"]; + this.PrimeAge = source["PrimeAge"]; + this.Clutch = source["Clutch"]; + this.Shotgun = source["Shotgun"]; + this.PositionTwo = source["PositionTwo"]; + this.ArchetypeTwo = source["ArchetypeTwo"]; + this.RelativeID = source["RelativeID"]; + this.RelativeType = source["RelativeType"]; + this.Notes = source["Notes"]; + this.PlayerID = source["PlayerID"]; + this.HighSchool = source["HighSchool"]; + this.CollegeID = source["CollegeID"]; + this.College = source["College"]; + this.DraftedTeamID = source["DraftedTeamID"]; + this.DraftedTeam = source["DraftedTeam"]; + this.DraftedRound = source["DraftedRound"]; + this.DraftPickID = source["DraftPickID"]; + this.DraftedPick = source["DraftedPick"]; + this.City = source["City"]; + this.State = source["State"]; + this.OverallGrade = source["OverallGrade"]; + this.StaminaGrade = source["StaminaGrade"]; + this.InjuryGrade = source["InjuryGrade"]; + this.FootballIQGrade = source["FootballIQGrade"]; + this.SpeedGrade = source["SpeedGrade"]; + this.CarryingGrade = source["CarryingGrade"]; + this.AgilityGrade = source["AgilityGrade"]; + this.CatchingGrade = source["CatchingGrade"]; + this.RouteRunningGrade = source["RouteRunningGrade"]; + this.ZoneCoverageGrade = source["ZoneCoverageGrade"]; + this.ManCoverageGrade = source["ManCoverageGrade"]; + this.StrengthGrade = source["StrengthGrade"]; + this.TackleGrade = source["TackleGrade"]; + this.PassBlockGrade = source["PassBlockGrade"]; + this.RunBlockGrade = source["RunBlockGrade"]; + this.PassRushGrade = source["PassRushGrade"]; + this.RunDefenseGrade = source["RunDefenseGrade"]; + this.ThrowPowerGrade = source["ThrowPowerGrade"]; + this.ThrowAccuracyGrade = source["ThrowAccuracyGrade"]; + this.KickAccuracyGrade = source["KickAccuracyGrade"]; + this.KickPowerGrade = source["KickPowerGrade"]; + this.PuntAccuracyGrade = source["PuntAccuracyGrade"]; + this.PuntPowerGrade = source["PuntPowerGrade"]; + this.BoomOrBust = source["BoomOrBust"]; + this.BoomOrBustStatus = source["BoomOrBustStatus"]; + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } +} +export class LeadingTeams { + TeamID: number; + TeamName: string; + TeamAbbr: string; + Odds: number; + HasScholarship: boolean; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.TeamID = source["TeamID"]; + this.TeamName = source["TeamName"]; + this.TeamAbbr = source["TeamAbbr"]; + this.Odds = source["Odds"]; + this.HasScholarship = source["HasScholarship"]; + } +} +export class Croot { + ID: number; + PlayerID: number; + TeamID: number; + College: string; + FirstName: string; + LastName: string; + Position: string; + Archetype: string; + Height: number; + Weight: number; + Stars: number; + PotentialGrade: string; + Personality: string; + RecruitingBias: string; + AcademicBias: string; + WorkEthic: string; + HighSchool: string; + City: string; + State: string; + AffinityOne: string; + AffinityTwo: string; + RecruitingStatus: string; + RecruitModifier: number; + IsCustomCroot: boolean; + CustomCrootFor: string; + IsSigned: boolean; + OverallGrade: string; + TotalRank: number; + LeadingTeams: LeadingTeams[]; + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.ID = source["ID"]; + this.PlayerID = source["PlayerID"]; + this.TeamID = source["TeamID"]; + this.College = source["College"]; + this.FirstName = source["FirstName"]; + this.LastName = source["LastName"]; + this.Position = source["Position"]; + this.Archetype = source["Archetype"]; + this.Height = source["Height"]; + this.Weight = source["Weight"]; + this.Stars = source["Stars"]; + this.PotentialGrade = source["PotentialGrade"]; + this.Personality = source["Personality"]; + this.RecruitingBias = source["RecruitingBias"]; + this.AcademicBias = source["AcademicBias"]; + this.WorkEthic = source["WorkEthic"]; + this.HighSchool = source["HighSchool"]; + this.City = source["City"]; + this.State = source["State"]; + this.AffinityOne = source["AffinityOne"]; + this.AffinityTwo = source["AffinityTwo"]; + this.RecruitingStatus = source["RecruitingStatus"]; + this.RecruitModifier = source["RecruitModifier"]; this.IsCustomCroot = source["IsCustomCroot"]; this.CustomCrootFor = source["CustomCrootFor"]; this.IsSigned = source["IsSigned"]; @@ -5011,10 +5229,14 @@ export class BootstrapDataThree { CollegeDepthChartMap: {[key: uint]: CollegeTeamDepthChart}; FreeAgentOffers: FreeAgencyOffer[]; WaiverWireOffers: NFLWaiverOffer[]; + FreeAgents: NFLPlayer[]; + WaiverPlayers: NFLPlayer[]; + NFLDraftees: NFLDraftee[]; ProNews: NewsLog[]; NFLDepthChartMap: {[key: uint]: NFLDepthChart}; ContractMap: {[key: uint]: NFLContract}; ExtensionMap: {[key: uint]: NFLExtensionOffer}; + FaceData: {[key: uint]: FaceDataResponse}; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); @@ -5023,10 +5245,14 @@ export class BootstrapDataThree { this.CollegeDepthChartMap = this.convertValues(source["CollegeDepthChartMap"], CollegeTeamDepthChart, true); this.FreeAgentOffers = this.convertValues(source["FreeAgentOffers"], FreeAgencyOffer); this.WaiverWireOffers = this.convertValues(source["WaiverWireOffers"], NFLWaiverOffer); + this.FreeAgents = this.convertValues(source["FreeAgents"], NFLPlayer); + this.WaiverPlayers = this.convertValues(source["WaiverPlayers"], NFLPlayer); + this.NFLDraftees = this.convertValues(source["NFLDraftees"], NFLDraftee); this.ProNews = this.convertValues(source["ProNews"], NewsLog); this.NFLDepthChartMap = this.convertValues(source["NFLDepthChartMap"], NFLDepthChart, true); this.ContractMap = this.convertValues(source["ContractMap"], NFLContract, true); this.ExtensionMap = this.convertValues(source["ExtensionMap"], NFLExtensionOffer, true); + this.FaceData = this.convertValues(source["FaceData"], FaceDataResponse, true); } convertValues(a: any, classs: any, asMap: boolean = false): any { @@ -5416,6 +5642,7 @@ export class BaseTeam { SpecialTeamsGrade: string; PenaltyMarks: number; JerseyType: number; + LastLogin: Time; constructor(source: any = {}) { if ('string' === typeof source) source = JSON.parse(source); @@ -5442,7 +5669,26 @@ export class BaseTeam { this.SpecialTeamsGrade = source["SpecialTeamsGrade"]; this.PenaltyMarks = source["PenaltyMarks"]; this.JerseyType = source["JerseyType"]; + this.LastLogin = this.convertValues(source["LastLogin"], Time); } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (Array.isArray(a)) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } } @@ -6613,218 +6859,7 @@ export class PollDataResponse { } -export class NFLDraftee { - ID: number; - CreatedAt: Time; - UpdatedAt: Time; - DeletedAt: Time; - FirstName: string; - LastName: string; - Position: string; - Archetype: string; - PreviousTeamID: number; - PreviousTeam: string; - Height: number; - Weight: number; - Age: number; - Stars: number; - Overall: number; - Stamina: number; - Injury: number; - FootballIQ: number; - Speed: number; - Carrying: number; - Agility: number; - Catching: number; - RouteRunning: number; - ZoneCoverage: number; - ManCoverage: number; - Strength: number; - Tackle: number; - PassBlock: number; - RunBlock: number; - PassRush: number; - RunDefense: number; - ThrowPower: number; - ThrowAccuracy: number; - KickAccuracy: number; - KickPower: number; - PuntAccuracy: number; - PuntPower: number; - Progression: number; - Discipline: number; - PotentialGrade: string; - FreeAgency: string; - Personality: string; - RecruitingBias: string; - WorkEthic: string; - AcademicBias: string; - IsInjured: boolean; - InjuryName: string; - InjuryType: string; - WeeksOfRecovery: number; - InjuryReserve: boolean; - PrimeAge: number; - Clutch: number; - Shotgun: number; - PositionTwo: string; - ArchetypeTwo: string; - RelativeID: number; - RelativeType: number; - Notes: string; - PlayerID: number; - HighSchool: string; - CollegeID: number; - College: string; - DraftedTeamID: number; - DraftedTeam: string; - DraftedRound: number; - DraftPickID: number; - DraftedPick: number; - City: string; - State: string; - OverallGrade: string; - StaminaGrade: string; - InjuryGrade: string; - FootballIQGrade: string; - SpeedGrade: string; - CarryingGrade: string; - AgilityGrade: string; - CatchingGrade: string; - RouteRunningGrade: string; - ZoneCoverageGrade: string; - ManCoverageGrade: string; - StrengthGrade: string; - TackleGrade: string; - PassBlockGrade: string; - RunBlockGrade: string; - PassRushGrade: string; - RunDefenseGrade: string; - ThrowPowerGrade: string; - ThrowAccuracyGrade: string; - KickAccuracyGrade: string; - KickPowerGrade: string; - PuntAccuracyGrade: string; - PuntPowerGrade: string; - BoomOrBust: boolean; - BoomOrBustStatus: string; - constructor(source: any = {}) { - if ('string' === typeof source) source = JSON.parse(source); - this.ID = source["ID"]; - this.CreatedAt = this.convertValues(source["CreatedAt"], Time); - this.UpdatedAt = this.convertValues(source["UpdatedAt"], Time); - this.DeletedAt = this.convertValues(source["DeletedAt"], Time); - this.FirstName = source["FirstName"]; - this.LastName = source["LastName"]; - this.Position = source["Position"]; - this.Archetype = source["Archetype"]; - this.PreviousTeamID = source["PreviousTeamID"]; - this.PreviousTeam = source["PreviousTeam"]; - this.Height = source["Height"]; - this.Weight = source["Weight"]; - this.Age = source["Age"]; - this.Stars = source["Stars"]; - this.Overall = source["Overall"]; - this.Stamina = source["Stamina"]; - this.Injury = source["Injury"]; - this.FootballIQ = source["FootballIQ"]; - this.Speed = source["Speed"]; - this.Carrying = source["Carrying"]; - this.Agility = source["Agility"]; - this.Catching = source["Catching"]; - this.RouteRunning = source["RouteRunning"]; - this.ZoneCoverage = source["ZoneCoverage"]; - this.ManCoverage = source["ManCoverage"]; - this.Strength = source["Strength"]; - this.Tackle = source["Tackle"]; - this.PassBlock = source["PassBlock"]; - this.RunBlock = source["RunBlock"]; - this.PassRush = source["PassRush"]; - this.RunDefense = source["RunDefense"]; - this.ThrowPower = source["ThrowPower"]; - this.ThrowAccuracy = source["ThrowAccuracy"]; - this.KickAccuracy = source["KickAccuracy"]; - this.KickPower = source["KickPower"]; - this.PuntAccuracy = source["PuntAccuracy"]; - this.PuntPower = source["PuntPower"]; - this.Progression = source["Progression"]; - this.Discipline = source["Discipline"]; - this.PotentialGrade = source["PotentialGrade"]; - this.FreeAgency = source["FreeAgency"]; - this.Personality = source["Personality"]; - this.RecruitingBias = source["RecruitingBias"]; - this.WorkEthic = source["WorkEthic"]; - this.AcademicBias = source["AcademicBias"]; - this.IsInjured = source["IsInjured"]; - this.InjuryName = source["InjuryName"]; - this.InjuryType = source["InjuryType"]; - this.WeeksOfRecovery = source["WeeksOfRecovery"]; - this.InjuryReserve = source["InjuryReserve"]; - this.PrimeAge = source["PrimeAge"]; - this.Clutch = source["Clutch"]; - this.Shotgun = source["Shotgun"]; - this.PositionTwo = source["PositionTwo"]; - this.ArchetypeTwo = source["ArchetypeTwo"]; - this.RelativeID = source["RelativeID"]; - this.RelativeType = source["RelativeType"]; - this.Notes = source["Notes"]; - this.PlayerID = source["PlayerID"]; - this.HighSchool = source["HighSchool"]; - this.CollegeID = source["CollegeID"]; - this.College = source["College"]; - this.DraftedTeamID = source["DraftedTeamID"]; - this.DraftedTeam = source["DraftedTeam"]; - this.DraftedRound = source["DraftedRound"]; - this.DraftPickID = source["DraftPickID"]; - this.DraftedPick = source["DraftedPick"]; - this.City = source["City"]; - this.State = source["State"]; - this.OverallGrade = source["OverallGrade"]; - this.StaminaGrade = source["StaminaGrade"]; - this.InjuryGrade = source["InjuryGrade"]; - this.FootballIQGrade = source["FootballIQGrade"]; - this.SpeedGrade = source["SpeedGrade"]; - this.CarryingGrade = source["CarryingGrade"]; - this.AgilityGrade = source["AgilityGrade"]; - this.CatchingGrade = source["CatchingGrade"]; - this.RouteRunningGrade = source["RouteRunningGrade"]; - this.ZoneCoverageGrade = source["ZoneCoverageGrade"]; - this.ManCoverageGrade = source["ManCoverageGrade"]; - this.StrengthGrade = source["StrengthGrade"]; - this.TackleGrade = source["TackleGrade"]; - this.PassBlockGrade = source["PassBlockGrade"]; - this.RunBlockGrade = source["RunBlockGrade"]; - this.PassRushGrade = source["PassRushGrade"]; - this.RunDefenseGrade = source["RunDefenseGrade"]; - this.ThrowPowerGrade = source["ThrowPowerGrade"]; - this.ThrowAccuracyGrade = source["ThrowAccuracyGrade"]; - this.KickAccuracyGrade = source["KickAccuracyGrade"]; - this.KickPowerGrade = source["KickPowerGrade"]; - this.PuntAccuracyGrade = source["PuntAccuracyGrade"]; - this.PuntPowerGrade = source["PuntPowerGrade"]; - this.BoomOrBust = source["BoomOrBust"]; - this.BoomOrBustStatus = source["BoomOrBustStatus"]; - } - - convertValues(a: any, classs: any, asMap: boolean = false): any { - if (!a) { - return a; - } - if (Array.isArray(a)) { - return (a as any[]).map(elem => this.convertValues(elem, classs)); - } else if ("object" === typeof a) { - if (asMap) { - for (const key of Object.keys(a)) { - a[key] = new classs(a[key]); - } - return a; - } - return new classs(a); - } - return a; - } -} export class ScoutingProfile { ID: number; CreatedAt: Time; diff --git a/util/GenerationUtil.go b/util/GenerationUtil.go index 882f412..1673f48 100644 --- a/util/GenerationUtil.go +++ b/util/GenerationUtil.go @@ -727,6 +727,65 @@ func GetNewArchetypeMap() map[string]map[string]map[string]string { "QB": "Balanced", }, }, + "ATH": { + "Field General": { + "ILB": "Field General", + "QB": "Field General", + }, + "Triple-Threat": { + "K": "Accuracy", + "QB": PickFromStringList([]string{"Balanced", "Scrambler"}), + "P": "Accuracy", + "WR": "Speed", + "RB": "Speed", + }, + "Wingback": { + "RB": PickFromStringList([]string{"Balanced", "Speed"}), + "WR": "Speed", + "TE": "Receiving", + }, + "Slotback": { + "RB": "Power", + "WR": "Red Zone Threat", + "TE": "Vertical Threat", + }, + "Lineman": { + "OT": "Balanced", + "OG": "Balanced", + "C": "Balanced", + "DE": "Balanced", + "DT": "Balanced", + }, + "Strongside": { + "DE": PickFromStringList([]string{"Balanced", "Run Stopper"}), + "OLB": PickFromStringList([]string{"Coverage", "Run Stopper"}), + }, + "Weakside": { + "ILB": "Coverage", + "OLB": "Coverage", + "FS": PickFromStringList([]string{"Zone Coverage", "Man Coverage"}), + "CB": PickFromStringList([]string{"Zone Coverage", "Man Coverage"}), + "SS": PickFromStringList([]string{"Zone Coverage", "Man Coverage"}), + }, + "Bandit": { + "SS": "Run Stopper", + "CB": "Ball Hawk", + "FS": "Run Stopper", + "OLB": "Run Stopper", + }, + "Return Specialist": { + "K": "Accuracy", + "QB": "Balanced", + "WR": "Route Runner", + "RB": "Balanced", + }, + "Soccer Player": { + "K": "Accuracy", + "P": "Accuracy", + "WR": "Speed", + "RB": "Speed", + }, + }, } }