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/db/db_test.go b/scouting/db/db_test.go
index bccfea1..ffb9817 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -144,7 +144,7 @@
 
 	correct := []Stats2024{
 		Stats2024{
-			PreScouting: false, TeamNumber: "894",
+			CompType: "Regular", TeamNumber: "894",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 1,
@@ -152,7 +152,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "emma",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "942",
+			CompType: "Regular", TeamNumber: "942",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 2, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 0,
@@ -160,7 +160,15 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "harry",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "432",
+			CompType: "Practice", TeamNumber: "942",
+			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
+			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
+			Speaker: 2, Amp: 1, SpeakerAmplified: 3,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
+			Park: false, OnStage: true, Harmony: false, RobotDied: false, CollectedBy: "kaleb",
+		},
+		Stats2024{
+			CompType: "Regular", TeamNumber: "432",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 2, Amp: 1, SpeakerAmplified: 3, Shuttled: 0, OutOfField: 2,
@@ -168,7 +176,7 @@
 			Park: false, OnStage: true, Harmony: false, RobotDied: false, CollectedBy: "henry",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "52A",
+			CompType: "Regular", TeamNumber: "52A",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 2, Shuttled: 0, OutOfField: 0,
@@ -176,7 +184,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "jordan",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "745",
+			CompType: "Regular", TeamNumber: "745",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 5, Amp: 0, SpeakerAmplified: 2, Shuttled: 0, OutOfField: 0,
@@ -184,7 +192,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "taylor",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "934",
+			CompType: "Regular", TeamNumber: "934",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 1, AmpAuto: 3, NotesDroppedAuto: 0, MobilityAuto: true,
 			Speaker: 0, Amp: 3, SpeakerAmplified: 2, Shuttled: 0, OutOfField: 0,
@@ -231,7 +239,7 @@
 	defer fixture.TearDown()
 
 	stats := Stats2024{
-		PreScouting: false, TeamNumber: "6344",
+		CompType: "Regular", TeamNumber: "6344",
 		MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 		SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 		Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 1,
@@ -249,7 +257,35 @@
 	}
 
 	// Mark the data as pre-scouting data. It should now succeed.
-	stats.PreScouting = true
+	stats.CompType = "Prescouting"
+	err = fixture.db.AddToStats2024(stats)
+	check(t, err, "Failed to add prescouted stats to DB")
+}
+
+func TestInsertPracticeMatchStats2024(t *testing.T) {
+	fixture := createDatabase(t)
+	defer fixture.TearDown()
+
+	stats := Stats2024{
+		CompType: "Regular", TeamNumber: "6344",
+		MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
+		SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
+		Speaker: 0, Amp: 5, SpeakerAmplified: 1,
+		NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
+		Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "emma",
+	}
+
+	// Attempt to insert the non-practice match data and make sure it fails.
+	err := fixture.db.AddToStats2024(stats)
+	if err == nil {
+		t.Fatal("Expected error from inserting the stats.")
+	}
+	if err.Error() != "Failed to find team 6344 in match 3 in the schedule." {
+		t.Fatal("Got:", err.Error())
+	}
+
+	// Mark the data as practice match data. It should now succeed.
+	stats.CompType = "Practice"
 	err = fixture.db.AddToStats2024(stats)
 	check(t, err, "Failed to add prescouted stats to DB")
 }
@@ -260,7 +296,7 @@
 
 	stats := []Stats2024{
 		Stats2024{
-			PreScouting: false, TeamNumber: "328A",
+			CompType: "Regular", TeamNumber: "328A",
 			MatchNumber: 7, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 2, OutOfField: 0,
@@ -268,7 +304,7 @@
 			Park: false, OnStage: true, Harmony: false, RobotDied: false, CollectedBy: "emma",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "978",
+			CompType: "Regular", TeamNumber: "978",
 			MatchNumber: 2, SetNumber: 2, CompLevel: "qm", StartingQuadrant: 4,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 0, Shuttled: 0, OutOfField: 0,
@@ -276,7 +312,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "emma",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "328A",
+			CompType: "Regular", TeamNumber: "328A",
 			MatchNumber: 4, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 2,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 1,
@@ -306,7 +342,7 @@
 
 	// Validate that requesting status for a single team gets us the
 	// expected data.
-	statsFor328A, err := fixture.db.ReturnStats2024ForTeam("328A", 7, 1, "qm", false)
+	statsFor328A, err := fixture.db.ReturnStats2024ForTeam("328A", 7, 1, "qm", "Regular")
 	check(t, err, "Failed ReturnStats2024()")
 
 	if !reflect.DeepEqual([]Stats2024{stats[0]}, statsFor328A) {
@@ -314,7 +350,7 @@
 	}
 	// Validate that requesting team data for a non-existent match returns
 	// nothing.
-	statsForMissing, err := fixture.db.ReturnStats2024ForTeam("6344", 9, 1, "qm", false)
+	statsForMissing, err := fixture.db.ReturnStats2024ForTeam("6344", 9, 1, "qm", "Regular")
 	check(t, err, "Failed ReturnStats2024()")
 
 	if !reflect.DeepEqual([]Stats2024{}, statsForMissing) {
@@ -695,7 +731,7 @@
 
 	startingStats := []Stats2024{
 		Stats2024{
-			PreScouting: false, TeamNumber: "345",
+			CompType: "Regular", TeamNumber: "345",
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 1, Amp: 3, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 3,
@@ -703,7 +739,7 @@
 			Park: false, OnStage: true, Harmony: false, RobotDied: false, CollectedBy: "bailey",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "645",
+			CompType: "Practice", TeamNumber: "645",
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 0, Shuttled: 0, OutOfField: 0,
@@ -711,7 +747,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "kate",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "323",
+			CompType: "Regular", TeamNumber: "323",
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 			Speaker: 0, Amp: 0, SpeakerAmplified: 2, Shuttled: 0, OutOfField: 2,
@@ -719,7 +755,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "tyler",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "542",
+			CompType: "Regular", TeamNumber: "542",
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 2, Shuttled: 2, OutOfField: 2,
@@ -730,7 +766,7 @@
 
 	correct := []Stats2024{
 		Stats2024{
-			PreScouting: false, TeamNumber: "345",
+			CompType: "Regular", TeamNumber: "345",
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 1, Amp: 3, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 3,
@@ -1149,7 +1185,7 @@
 
 	correct := []Stats2024{
 		Stats2024{
-			PreScouting: false, TeamNumber: "894",
+			CompType: "Practice", TeamNumber: "894",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 0,
@@ -1157,7 +1193,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "emma",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "942",
+			CompType: "Regular", TeamNumber: "942",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 2, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, Shuttled: 0, OutOfField: 0,
@@ -1165,7 +1201,7 @@
 			Park: true, OnStage: false, Harmony: false, RobotDied: false, CollectedBy: "harry",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "432",
+			CompType: "Practice", TeamNumber: "432",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 2, Amp: 1, SpeakerAmplified: 3, Shuttled: 5, OutOfField: 1,
@@ -1173,7 +1209,7 @@
 			Park: false, OnStage: true, Harmony: false, RobotDied: false, CollectedBy: "henry",
 		},
 		Stats2024{
-			PreScouting: false, TeamNumber: "52A",
+			CompType: "Regular", TeamNumber: "52A",
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 2, Shuttled: 0, OutOfField: 0,