Implement step 17 modules: threads/messages, notifications with automation (submission.created, idea.created, grant_call.opened), innovation test feedback, admin panel (submissions, verify, metrics, grant call status), Middleman adaptation and partnerships. Split multi-type files into one type per file and replace object-valued dictionaries with string-valued maps in data contracts (migrations 0006/0007).
32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using Dahomey.Cbor.Attributes;
|
|
|
|
namespace TarninaHub.Infrastructure.Persistence;
|
|
|
|
|
|
internal sealed class InnovationRow
|
|
{
|
|
[CborProperty("id")] public string Id { get; set; } = string.Empty;
|
|
|
|
[CborProperty("title")] public string Title { get; set; } = string.Empty;
|
|
|
|
[CborProperty("summary")] public string Summary { get; set; } = string.Empty;
|
|
|
|
[CborProperty("description")] public string Description { get; set; } = string.Empty;
|
|
|
|
[CborProperty("challenge")] public string Challenge { get; set; } = string.Empty;
|
|
|
|
[CborProperty("stage")] public string Stage { get; set; } = string.Empty;
|
|
|
|
[CborProperty("cost")] public string? Cost { get; set; }
|
|
|
|
[CborProperty("contact")] public Dictionary<string, string?>? Contact { get; set; }
|
|
|
|
[CborProperty("media")] public List<Dictionary<string, string?>> Media { get; set; } = [];
|
|
|
|
[CborProperty("published")] public bool Published { get; set; }
|
|
|
|
[CborProperty("updated_at")] public DateTimeOffset? UpdatedAt { get; set; }
|
|
|
|
[CborProperty("embedding")] public List<float>? Embedding { get; set; }
|
|
}
|