Scouting: Add Practice Match to Data Entry

I also deleted some tests from last year that used an old version of Action from db.go since they were causing problems.
I probably need to go through and delete other old database functions, etc in a future patch.

Signed-off-by: Emily Markova <emily.markova@gmail.com>
Change-Id: Ib13dbbbde901cc3e7c9aaf4d242eb6bac714aa3a
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index 01f1937..8761b7d 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -102,7 +102,7 @@
 	ReturnStats2023() ([]db.Stats2023, error)
 	ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2023, error)
 	ReturnStats2024() ([]db.Stats2024, error)
-	ReturnStats2024ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2024, error)
+	ReturnStats2024ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, compType string) ([]db.Stats2024, error)
 	QueryAllShifts(int) ([]db.Shift, error)
 	QueryNotes(string) ([]string, error)
 	QueryPitImages(string) ([]db.RequestedPitImage, error)
@@ -200,7 +200,7 @@
 
 func (handler requestAllMatchesHandler) teamHasBeenDataScouted(key MatchAssemblyKey, teamNumber string) (bool, error) {
 	stats, err := handler.db.ReturnStats2024ForTeam(
-		teamNumber, key.MatchNumber, key.SetNumber, key.CompLevel, false)
+		teamNumber, key.MatchNumber, key.SetNumber, key.CompLevel, "Regular")
 	if err != nil {
 		return false, err
 	}
@@ -453,7 +453,8 @@
 	picked_up := false
 	lastPlacedTime := int64(0)
 	stat := db.Stats2024{
-		PreScouting: submit2024Actions.PreScouting(), TeamNumber: string(submit2024Actions.TeamNumber()), MatchNumber: submit2024Actions.MatchNumber(), SetNumber: submit2024Actions.SetNumber(), CompLevel: string(submit2024Actions.CompLevel()),
+		CompType: string(submit2024Actions.CompType()), TeamNumber: string(submit2024Actions.TeamNumber()),
+		MatchNumber: submit2024Actions.MatchNumber(), SetNumber: submit2024Actions.SetNumber(), CompLevel: string(submit2024Actions.CompLevel()),
 		StartingQuadrant: 0, SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 		Speaker: 0, Amp: 0, SpeakerAmplified: 0, NotesDropped: 0, Shuttled: 0, OutOfField: 0, Penalties: 0,
 		TrapNote: false, Spotlight: false, AvgCycle: 0, Park: false, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "",
@@ -479,7 +480,6 @@
 			if mobilityAction.Mobility() {
 				stat.MobilityAuto = true
 			}
-
 		} else if action_type == submit_2024_actions.ActionTypePenaltyAction {
 			var penaltyAction submit_2024_actions.PenaltyAction
 			penaltyAction.Init(actionTable.Bytes, actionTable.Pos)
@@ -613,6 +613,7 @@
 			Harmony:          stat.Harmony,
 			RobotDied:        stat.RobotDied,
 			CollectedBy:      stat.CollectedBy,
+			CompType:         stat.CompType,
 		})
 	}
 
@@ -1152,7 +1153,7 @@
 		request.ActionsList(&action, i)
 
 		dbAction := db.Action{
-			PreScouting: request.PreScouting(),
+			CompType:    string(request.CompType()),
 			TeamNumber:  string(request.TeamNumber()),
 			MatchNumber: request.MatchNumber(),
 			SetNumber:   request.SetNumber(),
@@ -1196,77 +1197,6 @@
 	w.Write(builder.FinishedBytes())
 }
 
-type submitActionsHandler struct {
-	db Database
-}
-
-func (handler submitActionsHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
-	// Get the username of the person submitting the data.
-	username := parseUsername(req)
-
-	requestBytes, err := io.ReadAll(req.Body)
-	if err != nil {
-		respondWithError(w, http.StatusBadRequest, fmt.Sprint("Failed to read request bytes:", err))
-		return
-	}
-
-	request, success := parseRequest(w, requestBytes, "SubmitActions", submit_actions.GetRootAsSubmitActions)
-	if !success {
-		return
-	}
-
-	log.Println("Got actions for match", request.MatchNumber(), "team", string(request.TeamNumber()), "from", username)
-
-	for i := 0; i < request.ActionsListLength(); i++ {
-
-		var action Action
-		request.ActionsList(&action, i)
-
-		dbAction := db.Action{
-			PreScouting: request.PreScouting(),
-			TeamNumber:  string(request.TeamNumber()),
-			MatchNumber: request.MatchNumber(),
-			SetNumber:   request.SetNumber(),
-			CompLevel:   string(request.CompLevel()),
-			//TODO: Serialize CompletedAction
-			CompletedAction: []byte{},
-			Timestamp:       action.Timestamp(),
-			CollectedBy:     username,
-		}
-
-		// Do some error checking.
-		if action.Timestamp() < 0 {
-			respondWithError(w, http.StatusBadRequest, fmt.Sprint(
-				"Invalid timestamp field value of ", action.Timestamp()))
-			return
-		}
-
-		err = handler.db.AddAction(dbAction)
-		if err != nil {
-			respondWithError(w, http.StatusInternalServerError, fmt.Sprint("Failed to add action to database: ", err))
-			return
-		}
-	}
-
-	stats, err := ConvertActionsToStat(request)
-	if err != nil {
-		respondWithError(w, http.StatusInternalServerError, fmt.Sprint("Failed to convert actions to stats: ", err))
-		return
-	}
-
-	stats.CollectedBy = username
-
-	err = handler.db.AddToStats2023(stats)
-	if err != nil {
-		respondWithError(w, http.StatusInternalServerError, fmt.Sprint("Failed to submit stats: ", stats, ": ", err))
-		return
-	}
-
-	builder := flatbuffers.NewBuilder(50 * 1024)
-	builder.Finish((&SubmitActionsResponseT{}).Pack(builder))
-	w.Write(builder.FinishedBytes())
-}
-
 type Delete2024DataScoutingHandler struct {
 	db Database
 }
@@ -1370,7 +1300,6 @@
 	scoutingServer.Handle("/requests/submit/shift_schedule", submitShiftScheduleHandler{db})
 	scoutingServer.Handle("/requests/request/shift_schedule", requestShiftScheduleHandler{db})
 	scoutingServer.Handle("/requests/submit/submit_driver_ranking", SubmitDriverRankingHandler{db})
-	scoutingServer.Handle("/requests/submit/submit_actions", submitActionsHandler{db})
 	scoutingServer.Handle("/requests/submit/submit_2024_actions", submit2024ActionsHandler{db})
 	scoutingServer.Handle("/requests/delete/delete_2023_data_scouting", Delete2023DataScoutingHandler{db})
 	scoutingServer.Handle("/requests/delete/delete_2024_data_scouting", Delete2024DataScoutingHandler{db})