Commit Graph

4 Commits

Author SHA1 Message Date
gamer147
d3ef76324f fix(load/index): UserInfo dates as nullable yyyy-MM-dd HH:mm:ss strings
LastPlayTime and MissionChangeTime were typed as DateTime, which STJ
serialised as "0001-01-01T00:00:00.0000000Z" for a fresh viewer
(DateTime.MinValue). Prod's wire shape is "yyyy-MM-dd HH:mm:ss"
(no T, no Z, no fractional seconds) when present and null when
absent — verified against data_dumps/traffic_prod_tutorial.ndjson.

The .NET default format has a real chance of crashing the client's
DateTime.Parse path on any code that reads either field, and the
fields are presence-sensitive (NetworkTask-family Keys.Contains
followed by ToDateTime), so emitting the .NET default reaches the
client as a stale-but-present value.

Switching the properties to string? + FormatProdDateTime helper:
- non-default DateTime -> "yyyy-MM-dd HH:mm:ss"
- DateTime.MinValue -> null (omitted from wire via global
  WhenWritingNull policy in Program.cs)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 18:03:32 -04:00
gamer147
5f44ee0c7e Getting ready to seed more data 2026-05-23 15:47:23 -04:00
gamer147
6b70850b7b More features 2026-05-23 14:18:01 -04:00
gamer147
79505e0c1a DTOs for index mostly done, doing DB models 2024-09-12 00:35:31 -04:00