Skip to content

Commit 9b8c749

Browse files
Merge pull request #8 from pierrick-fonquerne/fix/align-enum-casing
fix(infrastructure): align enum conversions with SQL CHECK constraints
2 parents 57ddfa7 + c698139 commit 9b8c749

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/backend/src/FantasyRealm.Infrastructure/Persistence/FantasyRealmDbContext.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ private static void ConfigureCharacter(ModelBuilder modelBuilder)
7474
entity.HasKey(e => e.Id);
7575
entity.Property(e => e.Name).HasMaxLength(50).IsRequired();
7676
entity.Property(e => e.Gender)
77-
.HasConversion<string>()
77+
.HasConversion(
78+
v => v.ToString().ToLowerInvariant(),
79+
v => Enum.Parse<Gender>(v, true))
7880
.HasMaxLength(20)
7981
.IsRequired();
8082
entity.Property(e => e.SkinColor).HasMaxLength(7).IsRequired();
@@ -102,7 +104,9 @@ private static void ConfigureArticle(ModelBuilder modelBuilder)
102104
entity.HasKey(e => e.Id);
103105
entity.Property(e => e.Name).HasMaxLength(100).IsRequired();
104106
entity.Property(e => e.Type)
105-
.HasConversion<string>()
107+
.HasConversion(
108+
v => v.ToString().ToLowerInvariant(),
109+
v => Enum.Parse<ArticleType>(v, true))
106110
.HasMaxLength(20)
107111
.IsRequired();
108112
entity.Property(e => e.IsActive).HasDefaultValue(true);
@@ -138,7 +142,9 @@ private static void ConfigureComment(ModelBuilder modelBuilder)
138142
entity.Property(e => e.Rating).IsRequired();
139143
entity.Property(e => e.Text).IsRequired();
140144
entity.Property(e => e.Status)
141-
.HasConversion<string>()
145+
.HasConversion(
146+
v => v.ToString().ToLowerInvariant(),
147+
v => Enum.Parse<CommentStatus>(v, true))
142148
.HasMaxLength(20)
143149
.HasDefaultValue(CommentStatus.Pending);
144150
entity.Property(e => e.CommentedAt).HasDefaultValueSql("CURRENT_TIMESTAMP");

0 commit comments

Comments
 (0)