Skip to content

Commit 14efe16

Browse files
nanotaboadaclaude
andcommitted
feat(data): normalize 2022 World Cup Argentina squad dataset (#435)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2b84c0b commit 14efe16

7 files changed

Lines changed: 362 additions & 57 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ This project uses famous football stadiums (A-Z) that hosted FIFA World Cup matc
4949

5050
### Changed
5151

52+
- Normalize player dataset: add Lo Celso (squad 27), correct Fernández/Mac Allister/Messi team data, replace random UUIDs with deterministic UUID v5 values (#435)
53+
- Align CRUD test fixtures: Lo Celso (squad 27) for Create and Delete, Messi (squad 10) for Retrieve, Damián Martínez (squad 23) for Update (#435)
5254
- Bump `codecov/codecov-action` from 5.5.2 to 5.5.3 (#423)
5355

5456
### Fixed

src/Dotnet.Samples.AspNetCore.WebApi/Migrations/20260329000000_NormalizePlayerDataset.Designer.cs

Lines changed: 69 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
using Dotnet.Samples.AspNetCore.WebApi.Utilities;
2+
using Microsoft.EntityFrameworkCore.Migrations;
3+
4+
#nullable disable
5+
6+
namespace Dotnet.Samples.AspNetCore.WebApi.Migrations
7+
{
8+
/// <inheritdoc />
9+
public partial class NormalizePlayerDataset : Migration
10+
{
11+
/// <inheritdoc />
12+
protected override void Up(MigrationBuilder migrationBuilder)
13+
{
14+
// Update UUIDs to canonical UUID v5 values for starting 11
15+
migrationBuilder.Sql(
16+
"UPDATE Players SET Id = '01772c59-43f0-5d85-b913-c78e4e281452' WHERE SquadNumber = 23"
17+
);
18+
migrationBuilder.Sql(
19+
"UPDATE Players SET Id = 'da31293b-4c7e-5e0f-a168-469ee29ecbc4' WHERE SquadNumber = 26"
20+
);
21+
migrationBuilder.Sql(
22+
"UPDATE Players SET Id = 'c096c69e-762b-5281-9290-bb9c167a24a0' WHERE SquadNumber = 13"
23+
);
24+
migrationBuilder.Sql(
25+
"UPDATE Players SET Id = 'd5f7dd7a-1dcb-5960-ba27-e34865b63358' WHERE SquadNumber = 19"
26+
);
27+
migrationBuilder.Sql(
28+
"UPDATE Players SET Id = '2f6f90a0-9b9d-5023-96d2-a2aaf03143a6' WHERE SquadNumber = 3"
29+
);
30+
migrationBuilder.Sql(
31+
"UPDATE Players SET Id = 'b5b46e79-929e-5ed2-949d-0d167109c022' WHERE SquadNumber = 11"
32+
);
33+
migrationBuilder.Sql(
34+
"UPDATE Players SET Id = '0293b282-1da8-562e-998e-83849b417a42' WHERE SquadNumber = 7"
35+
);
36+
migrationBuilder.Sql(
37+
"UPDATE Players SET Id = 'd3ba552a-dac3-588a-b961-1ea7224017fd', Team = 'SL Benfica', League = 'Liga Portugal' WHERE SquadNumber = 24"
38+
);
39+
migrationBuilder.Sql(
40+
"UPDATE Players SET Id = '9613cae9-16ab-5b54-937e-3135123b9e0d', Team = 'Brighton & Hove Albion' WHERE SquadNumber = 20"
41+
);
42+
migrationBuilder.Sql(
43+
"UPDATE Players SET Id = 'acc433bf-d505-51fe-831e-45eb44c4d43c', Team = 'Paris Saint-Germain', League = 'Ligue 1' WHERE SquadNumber = 10"
44+
);
45+
migrationBuilder.Sql(
46+
"UPDATE Players SET Id = '38bae91d-8519-55a2-b30a-b9fe38849bfb' WHERE SquadNumber = 9"
47+
);
48+
49+
// Update UUIDs to canonical UUID v5 values for substitutes
50+
migrationBuilder.Sql(
51+
"UPDATE Players SET Id = '5a9cd988-95e6-54c1-bc34-9aa08acca8d0' WHERE SquadNumber = 1"
52+
);
53+
migrationBuilder.Sql(
54+
"UPDATE Players SET Id = 'c62f2ac1-41e8-5d34-b073-2ba0913d0e31' WHERE SquadNumber = 12"
55+
);
56+
migrationBuilder.Sql(
57+
"UPDATE Players SET Id = '5fdb10e8-38c0-5084-9a3f-b369a960b9c2' WHERE SquadNumber = 2"
58+
);
59+
migrationBuilder.Sql(
60+
"UPDATE Players SET Id = 'bbd441f7-fcfb-5834-8468-2a9004b64c8c' WHERE SquadNumber = 4"
61+
);
62+
migrationBuilder.Sql(
63+
"UPDATE Players SET Id = 'd8bfea25-f189-5d5e-b3a5-ed89329b9f7c' WHERE SquadNumber = 6"
64+
);
65+
migrationBuilder.Sql(
66+
"UPDATE Players SET Id = 'dca343a8-12e5-53d6-89a8-916b120a5ee4' WHERE SquadNumber = 8"
67+
);
68+
migrationBuilder.Sql(
69+
"UPDATE Players SET Id = '98306555-a466-5d18-804e-dc82175e697b' WHERE SquadNumber = 25"
70+
);
71+
migrationBuilder.Sql(
72+
"UPDATE Players SET Id = '9d140400-196f-55d8-86e1-e0b96a375c83' WHERE SquadNumber = 5"
73+
);
74+
migrationBuilder.Sql(
75+
"UPDATE Players SET Id = 'd3b0e8e8-2c34-531a-b608-b24fed0ef986' WHERE SquadNumber = 14"
76+
);
77+
migrationBuilder.Sql(
78+
"UPDATE Players SET Id = '7cc8d527-56a2-58bd-9528-2618fc139d30' WHERE SquadNumber = 17"
79+
);
80+
migrationBuilder.Sql(
81+
"UPDATE Players SET Id = '191c82af-0c51-526a-b903-c3600b61b506' WHERE SquadNumber = 18"
82+
);
83+
migrationBuilder.Sql(
84+
"UPDATE Players SET Id = 'b1306b7b-a3a4-5f7c-90fd-dd5bdbed57ba' WHERE SquadNumber = 15"
85+
);
86+
migrationBuilder.Sql(
87+
"UPDATE Players SET Id = 'ecec27e8-487b-5622-b116-0855020477ed' WHERE SquadNumber = 16"
88+
);
89+
migrationBuilder.Sql(
90+
"UPDATE Players SET Id = '7941cd7c-4df1-5952-97e8-1e7f5d08e8aa' WHERE SquadNumber = 21"
91+
);
92+
migrationBuilder.Sql(
93+
"UPDATE Players SET Id = '79c96f29-c59f-5f98-96b8-3a5946246624' WHERE SquadNumber = 22"
94+
);
95+
96+
// Insert Lo Celso (squad 27) — OR IGNORE is safe on a fresh DB where SeedSubstitutes
97+
// already seeded him (because GetSubstitutesWithId() now includes him), and required
98+
// for an existing DB that was seeded before this migration was added.
99+
migrationBuilder.Sql(
100+
"INSERT OR IGNORE INTO \"Players\" (\"Id\", \"FirstName\", \"MiddleName\", \"LastName\", \"DateOfBirth\", \"SquadNumber\", \"Position\", \"AbbrPosition\", \"Team\", \"League\", \"Starting11\") "
101+
+ "VALUES ('F8D13028-0D22-5513-8774-08A2332B5814', 'Giovani', NULL, 'Lo Celso', '1996-04-09 00:00:00', 27, 'Central Midfield', 'CM', 'Real Betis Balompié', 'La Liga', 0)"
102+
);
103+
}
104+
105+
/// <inheritdoc />
106+
protected override void Down(MigrationBuilder migrationBuilder)
107+
{
108+
// Remove Lo Celso (squad 27)
109+
migrationBuilder.DeleteData(
110+
table: "Players",
111+
keyColumn: "Id",
112+
keyValue: Guid.Parse("f8d13028-0d22-5513-8774-08a2332b5814")
113+
);
114+
115+
// Revert team/league corrections
116+
migrationBuilder.Sql(
117+
"UPDATE Players SET Team = 'Chelsea FC', League = 'Premier League' WHERE SquadNumber = 24"
118+
);
119+
migrationBuilder.Sql("UPDATE Players SET Team = 'Liverpool FC' WHERE SquadNumber = 20");
120+
migrationBuilder.Sql(
121+
"UPDATE Players SET Team = 'Inter Miami CF', League = 'Major League Soccer' WHERE SquadNumber = 10"
122+
);
123+
124+
// Revert UUIDs for starting 11
125+
migrationBuilder.Sql(
126+
"UPDATE Players SET Id = 'f91b9671-cfd1-48d7-afb9-34e93568c9ee' WHERE SquadNumber = 23"
127+
);
128+
migrationBuilder.Sql(
129+
"UPDATE Players SET Id = '51ec988a-0d8b-42d9-84e4-5e17c93d8d50' WHERE SquadNumber = 26"
130+
);
131+
migrationBuilder.Sql(
132+
"UPDATE Players SET Id = '0969be24-086c-4c51-9c29-0280683b8133' WHERE SquadNumber = 13"
133+
);
134+
migrationBuilder.Sql(
135+
"UPDATE Players SET Id = 'ac532709-4682-49db-acc2-395f61f405ab' WHERE SquadNumber = 19"
136+
);
137+
migrationBuilder.Sql(
138+
"UPDATE Players SET Id = 'dc052ee4-c69d-49da-a256-b8ec727f4d59' WHERE SquadNumber = 3"
139+
);
140+
migrationBuilder.Sql(
141+
"UPDATE Players SET Id = '6def9bb7-23c2-42b5-b37b-2e9b6fec31cd' WHERE SquadNumber = 11"
142+
);
143+
migrationBuilder.Sql(
144+
"UPDATE Players SET Id = '8ca911d9-ab32-4366-b2b1-cad5eb6f4bcc' WHERE SquadNumber = 7"
145+
);
146+
migrationBuilder.Sql(
147+
"UPDATE Players SET Id = '198c4774-9607-4e76-8475-ec2528af69d2' WHERE SquadNumber = 24"
148+
);
149+
migrationBuilder.Sql(
150+
"UPDATE Players SET Id = '06971ada-1b3d-4d4a-88f5-e2f35311b5aa' WHERE SquadNumber = 20"
151+
);
152+
migrationBuilder.Sql(
153+
"UPDATE Players SET Id = 'df6f6bab-5efd-4518-80bb-09ef54435636' WHERE SquadNumber = 10"
154+
);
155+
migrationBuilder.Sql(
156+
"UPDATE Players SET Id = '27cf4e29-67d5-4c3b-9cf8-7d3fa3942fcb' WHERE SquadNumber = 9"
157+
);
158+
159+
// Revert UUIDs for substitutes
160+
migrationBuilder.Sql(
161+
"UPDATE Players SET Id = 'b1f8a5d3-2c4e-4a6b-8d9f-1e3c5a7b9d2f' WHERE SquadNumber = 1"
162+
);
163+
migrationBuilder.Sql(
164+
"UPDATE Players SET Id = 'c2e9b6f4-3d5f-4b7c-9e0a-2f4d6b8c0e3a' WHERE SquadNumber = 12"
165+
);
166+
migrationBuilder.Sql(
167+
"UPDATE Players SET Id = 'd3f0c7e5-4e6a-5c8d-0f1b-3a5e7c9d1f4b' WHERE SquadNumber = 2"
168+
);
169+
migrationBuilder.Sql(
170+
"UPDATE Players SET Id = 'e4a1d8f6-5f7b-6d9e-1a2c-4b6d8e0a2c5d' WHERE SquadNumber = 4"
171+
);
172+
migrationBuilder.Sql(
173+
"UPDATE Players SET Id = 'f5b2e9a7-6a8c-7e0f-2b3d-5c7e9a1b3d6e' WHERE SquadNumber = 6"
174+
);
175+
migrationBuilder.Sql(
176+
"UPDATE Players SET Id = 'a6c3f0b8-7b9d-8f1a-3c4e-6d8f0b2c4e7f' WHERE SquadNumber = 8"
177+
);
178+
migrationBuilder.Sql(
179+
"UPDATE Players SET Id = 'b7d4a1c9-8c0e-9a2b-4d5f-7e9a1c3d5f8a' WHERE SquadNumber = 25"
180+
);
181+
migrationBuilder.Sql(
182+
"UPDATE Players SET Id = 'c8e5b2d0-9d1f-0b3c-5e6a-8f0b2d4e6a9b' WHERE SquadNumber = 5"
183+
);
184+
migrationBuilder.Sql(
185+
"UPDATE Players SET Id = 'd9f6c3e1-0e2a-1c4d-6f7b-9a1c3e5f7b0c' WHERE SquadNumber = 14"
186+
);
187+
migrationBuilder.Sql(
188+
"UPDATE Players SET Id = 'e0a7d4f2-1f3b-2d5e-7a8c-0b2d4f6a8c1d' WHERE SquadNumber = 17"
189+
);
190+
migrationBuilder.Sql(
191+
"UPDATE Players SET Id = 'f1b8e5a3-2a4c-3e6f-8b9d-1c3e5a7b9d2e' WHERE SquadNumber = 18"
192+
);
193+
migrationBuilder.Sql(
194+
"UPDATE Players SET Id = 'a2c9f6b4-3b5d-4f7a-9c0e-2d4f6b8c0e3f' WHERE SquadNumber = 15"
195+
);
196+
migrationBuilder.Sql(
197+
"UPDATE Players SET Id = 'b3d0a7c5-4c6e-5a8b-0d1f-3e5a7c9d1f4a' WHERE SquadNumber = 16"
198+
);
199+
migrationBuilder.Sql(
200+
"UPDATE Players SET Id = 'c4e1b8d6-5d7f-6b9c-1e2a-4f6d8e0a2c5b' WHERE SquadNumber = 21"
201+
);
202+
migrationBuilder.Sql(
203+
"UPDATE Players SET Id = 'd5f2c9e7-6e8a-7c0d-2f3b-5a7e9a1b3d6c' WHERE SquadNumber = 22"
204+
);
205+
}
206+
}
207+
}

0 commit comments

Comments
 (0)