-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModels.cs
More file actions
39 lines (34 loc) · 1002 Bytes
/
Models.cs
File metadata and controls
39 lines (34 loc) · 1002 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Models.cs
public record NewsItem(
string Title,
string Link,
DateTimeOffset Published,
string Source,
string? Summary = null);
public record TopicTrend(
string Topic,
int CountNow,
int CountPrev,
double Slope, // simple linear slope over N days
double Relevance); // 0..1
public record PricePoint(DateTimeOffset Ts, decimal Price);
public class PriceItem
{
public string Name { get; set; }
public string Url { get; set; }
public string Currency { get; set; }
public List<PricePoint> Series { get; set; }
public PriceItem(string name, string url, string currency, List<PricePoint> series)
{
Name = name;
Url = url;
Currency = currency;
Series = series;
}
}
public class StateOfWorld
{
public DateTimeOffset? LastDigestUtc { get; set; }
public List<NewsItem> CacheNews { get; set; } = new(); // last ~7 days (trim)
public List<PriceItem> Prices { get; set; } = new();
}