From ad87e1c2c529b2ba48ed348fc413dec60bee6e31 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 7 Apr 2026 11:38:04 +0100 Subject: [PATCH] feat: add EmailSummary, ClassificationResult, and ActivityEntry models --- src/SpamGuard/Models/ActivityEntry.cs | 20 ++++++++++++++++++++ src/SpamGuard/Models/ClassificationResult.cs | 11 +++++++++++ src/SpamGuard/Models/EmailSummary.cs | 10 ++++++++++ 3 files changed, 41 insertions(+) create mode 100644 src/SpamGuard/Models/ActivityEntry.cs create mode 100644 src/SpamGuard/Models/ClassificationResult.cs create mode 100644 src/SpamGuard/Models/EmailSummary.cs diff --git a/src/SpamGuard/Models/ActivityEntry.cs b/src/SpamGuard/Models/ActivityEntry.cs new file mode 100644 index 0000000..6d81e7a --- /dev/null +++ b/src/SpamGuard/Models/ActivityEntry.cs @@ -0,0 +1,20 @@ +// src/SpamGuard/Models/ActivityEntry.cs +namespace SpamGuard.Models; + +public enum Verdict +{ + Trusted, + Spam, + Legitimate, + Uncertain, + Error +} + +public sealed record ActivityEntry( + DateTime Timestamp, + string Sender, + string Subject, + Verdict Verdict, + double? Confidence, + string? Reason +); diff --git a/src/SpamGuard/Models/ClassificationResult.cs b/src/SpamGuard/Models/ClassificationResult.cs new file mode 100644 index 0000000..80b9902 --- /dev/null +++ b/src/SpamGuard/Models/ClassificationResult.cs @@ -0,0 +1,11 @@ +// src/SpamGuard/Models/ClassificationResult.cs +namespace SpamGuard.Models; + +public sealed record ClassificationResult( + string Classification, + double Confidence, + string Reason +) +{ + public bool IsSpam => string.Equals(Classification, "spam", StringComparison.OrdinalIgnoreCase); +} diff --git a/src/SpamGuard/Models/EmailSummary.cs b/src/SpamGuard/Models/EmailSummary.cs new file mode 100644 index 0000000..3c6cd22 --- /dev/null +++ b/src/SpamGuard/Models/EmailSummary.cs @@ -0,0 +1,10 @@ +// src/SpamGuard/Models/EmailSummary.cs +namespace SpamGuard.Models; + +public sealed record EmailSummary( + uint Uid, + string From, + string Subject, + string BodySnippet, + DateTimeOffset Date +);