diff --git a/api/.editorconfig b/api/.editorconfig
index a3a3ce583..2465e9a3b 100644
--- a/api/.editorconfig
+++ b/api/.editorconfig
@@ -171,6 +171,7 @@ csharp_style_prefer_pattern_matching = true:silent
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_extended_property_pattern = true:suggestion
csharp_style_prefer_primary_constructors = true:suggestion
+csharp_prefer_system_threading_lock = true:suggestion
# C# or VB files
[*.{cs,vb}]
diff --git a/api/Vote.Monitor.Ingestor.sln b/api/Vote.Monitor.Ingestor.sln
new file mode 100644
index 000000000..4e3b0b4bf
--- /dev/null
+++ b/api/Vote.Monitor.Ingestor.sln
@@ -0,0 +1,104 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36310.24
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.Ingestor.Core", "src\Vote.Monitor.Ingestor.Core\Vote.Monitor.Ingestor.Core.csproj", "{79AB5114-0915-17CE-0242-EA62DB5B8CA5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E5E03C8-4D32-4739-814D-8FE9429C9B48}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{56C0C5FD-101A-474B-B6BC-9BEDA8BB9EEE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.Domain", "src\Vote.Monitor.Domain\Vote.Monitor.Domain.csproj", "{6B9F50DD-275A-3271-8ABA-CDA6810807F4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.Ingestor.Api", "src\Vote.Monitor.Ingestor.Api\Vote.Monitor.Ingestor.Api.csproj", "{81BC5DC5-5670-42AE-8A47-217A913BCF87}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.Ingestor.Core.UnitTests", "tests\Vote.Monitor.Ingestor.Core.UnitTests\Vote.Monitor.Ingestor.Core.UnitTests.csproj", "{781679E9-0733-9CBE-CDFC-48312F4187A3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authorization.Policies", "src\Authorization.Policies\Authorization.Policies.csproj", "{90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Module.Answers", "src\Module.Answers\Module.Answers.csproj", "{723225B2-3DAF-662C-8E0F-181BCED49C1B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Feature.Auth", "src\Feature.Auth\Feature.Auth.csproj", "{ACC84E43-FD92-B72C-3859-1FF41C12C070}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.Core", "src\Vote.Monitor.Core\Vote.Monitor.Core.csproj", "{C0A7C75B-FAF8-E938-0738-A9CC7F010721}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Feature.Form.Submission.SMS", "src\Feature.Form.Submission.SMS\Feature.Form.Submission.SMS.csproj", "{982CFDB2-C1EC-22B1-BC80-720B31D8EAC8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Feature.Form.Submission.SMS.UnitTests", "tests\Feature.Form.Submission.SMS.UnitTests\Feature.Form.Submission.SMS.UnitTests.csproj", "{B5FD0884-6C63-4113-8D91-6031E00B979B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vote.Monitor.TestUtils", "tests\Vote.Monitor.TestUtils\Vote.Monitor.TestUtils.csproj", "{E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {79AB5114-0915-17CE-0242-EA62DB5B8CA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {79AB5114-0915-17CE-0242-EA62DB5B8CA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {79AB5114-0915-17CE-0242-EA62DB5B8CA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {79AB5114-0915-17CE-0242-EA62DB5B8CA5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6B9F50DD-275A-3271-8ABA-CDA6810807F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6B9F50DD-275A-3271-8ABA-CDA6810807F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B9F50DD-275A-3271-8ABA-CDA6810807F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6B9F50DD-275A-3271-8ABA-CDA6810807F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {81BC5DC5-5670-42AE-8A47-217A913BCF87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {81BC5DC5-5670-42AE-8A47-217A913BCF87}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {81BC5DC5-5670-42AE-8A47-217A913BCF87}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {81BC5DC5-5670-42AE-8A47-217A913BCF87}.Release|Any CPU.Build.0 = Release|Any CPU
+ {781679E9-0733-9CBE-CDFC-48312F4187A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {781679E9-0733-9CBE-CDFC-48312F4187A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {781679E9-0733-9CBE-CDFC-48312F4187A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {781679E9-0733-9CBE-CDFC-48312F4187A3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {723225B2-3DAF-662C-8E0F-181BCED49C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {723225B2-3DAF-662C-8E0F-181BCED49C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {723225B2-3DAF-662C-8E0F-181BCED49C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {723225B2-3DAF-662C-8E0F-181BCED49C1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ACC84E43-FD92-B72C-3859-1FF41C12C070}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACC84E43-FD92-B72C-3859-1FF41C12C070}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ACC84E43-FD92-B72C-3859-1FF41C12C070}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ACC84E43-FD92-B72C-3859-1FF41C12C070}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C0A7C75B-FAF8-E938-0738-A9CC7F010721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C0A7C75B-FAF8-E938-0738-A9CC7F010721}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C0A7C75B-FAF8-E938-0738-A9CC7F010721}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C0A7C75B-FAF8-E938-0738-A9CC7F010721}.Release|Any CPU.Build.0 = Release|Any CPU
+ {982CFDB2-C1EC-22B1-BC80-720B31D8EAC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {982CFDB2-C1EC-22B1-BC80-720B31D8EAC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {982CFDB2-C1EC-22B1-BC80-720B31D8EAC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {982CFDB2-C1EC-22B1-BC80-720B31D8EAC8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B5FD0884-6C63-4113-8D91-6031E00B979B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B5FD0884-6C63-4113-8D91-6031E00B979B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B5FD0884-6C63-4113-8D91-6031E00B979B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B5FD0884-6C63-4113-8D91-6031E00B979B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {79AB5114-0915-17CE-0242-EA62DB5B8CA5} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {6B9F50DD-275A-3271-8ABA-CDA6810807F4} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {81BC5DC5-5670-42AE-8A47-217A913BCF87} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {781679E9-0733-9CBE-CDFC-48312F4187A3} = {0E5E03C8-4D32-4739-814D-8FE9429C9B48}
+ {90976F7F-0DF4-DEC5-F418-C7C1EB13B6B7} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {723225B2-3DAF-662C-8E0F-181BCED49C1B} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {ACC84E43-FD92-B72C-3859-1FF41C12C070} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {C0A7C75B-FAF8-E938-0738-A9CC7F010721} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {982CFDB2-C1EC-22B1-BC80-720B31D8EAC8} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ {B5FD0884-6C63-4113-8D91-6031E00B979B} = {0E5E03C8-4D32-4739-814D-8FE9429C9B48}
+ {E7E2E54A-3DBB-1A18-13A9-4C8E8C5DDD58} = {0E5E03C8-4D32-4739-814D-8FE9429C9B48}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D19E1043-BFA3-44D0-B12F-CFB706EC6754}
+ EndGlobalSection
+EndGlobal
diff --git a/api/src/Feature.Form.Submission.SMS/Feature.Form.Submission.SMS.csproj b/api/src/Feature.Form.Submission.SMS/Feature.Form.Submission.SMS.csproj
new file mode 100644
index 000000000..8c078eef0
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Feature.Form.Submission.SMS.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api/src/Feature.Form.Submission.SMS/FormSubmissionModel.cs b/api/src/Feature.Form.Submission.SMS/FormSubmissionModel.cs
new file mode 100644
index 000000000..3e98c5d16
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/FormSubmissionModel.cs
@@ -0,0 +1,27 @@
+using Module.Answers.Mappers;
+using Module.Answers.Models;
+using Vote.Monitor.Domain.Entities.FormSubmissionAggregate;
+
+namespace Feature.Form.Submission.SMS;
+
+public record FormSubmissionModel
+{
+ public required Guid Id { get; init; }
+ public required Guid FormId { get; init; }
+ public required Guid PollingStationId { get; init; }
+ public SubmissionFollowUpStatus FollowUpStatus { get; init; }
+ public IReadOnlyList Answers { get; init; }
+ public bool IsCompleted { get; init; }
+
+ public static FormSubmissionModel FromEntity(FormSubmission entity) => new()
+ {
+ Id = entity.Id,
+ PollingStationId = entity.PollingStationId,
+ FormId = entity.FormId,
+ Answers = entity.Answers
+ .Select(AnswerMapper.ToModel)
+ .ToList(),
+ FollowUpStatus = entity.FollowUpStatus,
+ IsCompleted = entity.IsCompleted
+ };
+}
diff --git a/api/src/Feature.Form.Submission.SMS/GlobalUsings.cs b/api/src/Feature.Form.Submission.SMS/GlobalUsings.cs
new file mode 100644
index 000000000..85baca8dc
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/GlobalUsings.cs
@@ -0,0 +1,3 @@
+global using FormAggregate = Vote.Monitor.Domain.Entities.FormAggregate.Form;
+global using MonitoringObserverAggregate = Vote.Monitor.Domain.Entities.MonitoringObserverAggregate.MonitoringObserver;
+global using PollingStationAggregate = Vote.Monitor.Domain.Entities.PollingStationAggregate.PollingStation;
diff --git a/api/src/Feature.Form.Submission.SMS/Specifications/GetFormSpecification.cs b/api/src/Feature.Form.Submission.SMS/Specifications/GetFormSpecification.cs
new file mode 100644
index 000000000..0319ff89f
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Specifications/GetFormSpecification.cs
@@ -0,0 +1,10 @@
+using Ardalis.Specification;
+
+namespace Feature.Form.Submission.SMS.Specifications;
+public class GetFormSpecification : SingleResultSpecification
+{
+ public GetFormSpecification(string formCode, Guid electionRoundId, Guid monitoringNgoId)
+ {
+ Query.Where(f => f.Code == formCode && f.ElectionRoundId == electionRoundId && f.MonitoringNgoId == monitoringNgoId);
+ }
+}
diff --git a/api/src/Feature.Form.Submission.SMS/Specifications/GetMonitoringObserver.cs b/api/src/Feature.Form.Submission.SMS/Specifications/GetMonitoringObserver.cs
new file mode 100644
index 000000000..afc63fe55
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Specifications/GetMonitoringObserver.cs
@@ -0,0 +1,11 @@
+using Ardalis.Specification;
+using Vote.Monitor.Domain.Entities.MonitoringObserverAggregate;
+
+namespace Feature.Form.Submission.SMS.Specifications;
+public class GetMonitoringObserver : SingleResultSpecification
+{
+ public GetMonitoringObserver(string phoneNumber, Guid monitoringNgoId, Guid electionRoundId)
+ {
+ Query.Where(mo => mo.PhoneNumber == phoneNumber && mo.MonitoringNgoId == monitoringNgoId && mo.ElectionRoundId == electionRoundId);
+ }
+}
diff --git a/api/src/Feature.Form.Submission.SMS/Specifications/GetPollingStation.cs b/api/src/Feature.Form.Submission.SMS/Specifications/GetPollingStation.cs
new file mode 100644
index 000000000..020e4778c
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Specifications/GetPollingStation.cs
@@ -0,0 +1,12 @@
+using Ardalis.Specification;
+using Vote.Monitor.Domain.Entities.MonitoringObserverAggregate;
+using Vote.Monitor.Domain.Entities.PollingStationAggregate;
+
+namespace Feature.Form.Submission.SMS.Specifications;
+public class GetPollingStation : SingleResultSpecification
+{
+ public GetPollingStation(string pollingStationCode, Guid electionRoundId)
+ {
+ Query.Where(ps => ps.SecondaryId == pollingStationCode && ps.ElectionRoundId == electionRoundId);
+ }
+}
diff --git a/api/src/Feature.Form.Submission.SMS/Submit/Endpoint.cs b/api/src/Feature.Form.Submission.SMS/Submit/Endpoint.cs
new file mode 100644
index 000000000..5f3f4f52e
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Submit/Endpoint.cs
@@ -0,0 +1,199 @@
+using FastEndpoints;
+using Feature.Form.Submission.SMS.Specifications;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http.HttpResults;
+using Vote.Monitor.Core.Services.Time;
+using Vote.Monitor.Domain.Entities.FormAggregate;
+using Vote.Monitor.Domain.Entities.FormAnswerBase.Answers;
+using Vote.Monitor.Domain.Entities.FormBase.Questions;
+using Vote.Monitor.Domain.Entities.FormSubmissionAggregate;
+using Vote.Monitor.Domain.Repository;
+using Vote.Monitor.Ingestor.Core.Converters;
+using static Vote.Monitor.Ingestor.Core.Converters.SmsFormSubmission;
+namespace Feature.Form.Submission.SMS.Submit;
+public class Endpoint(
+ IRepository repository,
+ IReadRepository formRepository,
+ IReadRepository monitoringObserverRepository,
+ IReadRepository pollingStationRepository,
+ SmsToFormSubmissionDecoder formSubmissionDecoder,
+ ITimeProvider timeProvider) : Endpoint, NotFound>>
+{
+ private const int MAX_NUMBER_ANSWER_LENGTH = 4;
+
+ public override void Configure()
+ {
+ Post("/api/election-rounds/sms-form-submissions");
+ AllowAnonymous();
+ Summary(s =>
+ {
+ s.Summary = "Submits form submission for a given polling station using sms format";
+ s.Description = "Decodes sms format of the form submission, validates it and saves it";
+ });
+ }
+
+ public override async Task, NotFound>> ExecuteAsync(Request req,
+ CancellationToken ct)
+ {
+ SmsFormSubmission decodedSubmission;
+
+ try
+ {
+ decodedSubmission = formSubmissionDecoder.Decode(req.SmsMessage);
+ }
+ catch (ArgumentException ex)
+ {
+ AddError(x => x.SmsMessage, ex.Message);
+ ThrowIfAnyErrors();
+ return null;
+ }
+
+ var form = await formRepository.FirstOrDefaultAsync(
+ new GetFormSpecification(decodedSubmission.FormCode, req.ElectionRoundId, req.MonitoringNgoId), ct);
+ if (form is null)
+ {
+ return TypedResults.NotFound();
+ }
+
+ if (form.Status == FormStatus.Drafted)
+ {
+ AddError(x => x.SmsMessage, "Form is drafted");
+ ThrowIfAnyErrors();
+ }
+
+ var monitoringObserver = await monitoringObserverRepository.FirstOrDefaultAsync(
+ new GetMonitoringObserver(req.PhoneNumber, req.MonitoringNgoId, req.ElectionRoundId), ct);
+
+ if (monitoringObserver is null)
+ {
+ return TypedResults.NotFound();
+ }
+
+ var pollingStation = await pollingStationRepository.FirstOrDefaultAsync(
+ new GetPollingStation(decodedSubmission.PollingStationCode, req.ElectionRoundId), ct);
+
+ if (pollingStation is null) {
+ return TypedResults.NotFound();
+ }
+
+ var answers = MapAnswers(form, decodedSubmission);
+ ThrowIfAnyErrors();
+
+ var formSubmission = form.CreateFormSubmission(pollingStation, monitoringObserver, answers, isCompleted: true, timeProvider.UtcNow);
+
+ await repository.AddAsync(formSubmission, ct);
+
+ return TypedResults.Ok(FormSubmissionModel.FromEntity(formSubmission));
+ }
+
+ private List MapAnswers(FormAggregate form, SmsFormSubmission smsFormSubmission)
+ {
+ var answerList = new Dictionary();
+ var questionMap = form.Questions.ToDictionary(q => q.Code);
+ //TODO: make sure all questions are answered
+ foreach (var answer in smsFormSubmission.Answers) {
+ if (!questionMap.ContainsKey(answer.Code))
+ {
+ AddError(x => x.SmsMessage, $"Question '{answer.Code}' does not exist in form '{form.Code}'.");
+ continue;
+ }
+
+ var question = questionMap[answer.Code];
+ switch (question)
+ {
+ case NumberQuestion numberQuestion:
+ TryAddNumberAnswer(numberQuestion, answer, answerList);
+ break;
+ case SingleSelectQuestion singleSelectQuestion:
+ TryAddSingleSelectAnswer(singleSelectQuestion, answer, answerList);
+ break;
+ case MultiSelectQuestion multiSelectQuestion:
+ TryAddMultiSelectAnswer(multiSelectQuestion, answer, answerList);
+ break;
+ default:
+ AddError(x => x.SmsMessage, $"Question {question.Code} is not of a supported type.");
+ break;
+ }
+ }
+
+ if(answerList.Count != form.Questions.Count)
+ {
+ AddError(x => x.SmsMessage, $"The number of questions and answers does not match.");
+ }
+
+
+
+ return answerList.Values.ToList();
+ }
+
+ private void TryAddNumberAnswer(NumberQuestion question, SmsAnswer answer, Dictionary answerList)
+ {
+ if (!int.TryParse(answer.Value, out var value))
+ {
+ AddError(x => x.SmsMessage, $"The answer {answer.Value} for question {question.Code} is not a valid number.");
+ return;
+ }
+
+ if (answer.Value.Length > MAX_NUMBER_ANSWER_LENGTH)
+ {
+ AddError(x => x.SmsMessage, $"The answer {answer.Value} for question {question.Code} must have 4 digits or less.");
+ return;
+ }
+
+ answerList[question.Code] = NumberAnswer.Create(question.Id, value);
+ }
+
+ private void TryAddSingleSelectAnswer(SingleSelectQuestion question, SmsAnswer answer, Dictionary answerList)
+ {
+ var selectOption = GetSelectOption(question.Options, question.Code, answer.Value);
+
+ if (selectOption == null)
+ {
+ return;
+ }
+
+ answerList[question.Code] = SingleSelectAnswer.Create(question.Id, SelectedOption.Create(selectOption.Id, string.Empty));
+ }
+
+ private void TryAddMultiSelectAnswer(MultiSelectQuestion question, SmsAnswer answer, Dictionary answerList)
+ {
+ bool isInvalid = false;
+ List selectedOptions = new List();
+ foreach(char c in answer.Value)
+ {
+ var selectOption = GetSelectOption(question.Options, question.Code, c.ToString());
+ if (selectOption == null)
+ {
+ isInvalid = true;
+ } else {
+ selectedOptions.Add(SelectedOption.Create(selectOption.Id, string.Empty));
+ }
+ }
+
+ if (isInvalid)
+ {
+ return;
+ }
+
+ answerList[question.Code] = MultiSelectAnswer.Create(question.Id, selectedOptions.AsReadOnly());
+ }
+
+ private SelectOption? GetSelectOption(IReadOnlyList options, string questionCode, string answer)
+ {
+ if (!int.TryParse(answer, out var value))
+ {
+ AddError(x => x.SmsMessage, $"The answer {answer} for question {questionCode} is not a valid option.");
+ return null;
+ }
+
+ var index = value - 1;
+
+ if (index < 0 || index >= options.Count)
+ {
+ AddError(x => x.SmsMessage, $"The answer {answer} for question {questionCode} is not a valid option.");
+ return null;
+ }
+ return options[index];
+ }
+}
diff --git a/api/src/Feature.Form.Submission.SMS/Submit/Request.cs b/api/src/Feature.Form.Submission.SMS/Submit/Request.cs
new file mode 100644
index 000000000..1a4e0204a
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Submit/Request.cs
@@ -0,0 +1,8 @@
+namespace Feature.Form.Submission.SMS.Submit;
+public class Request
+{
+ public Guid ElectionRoundId { get; set; }
+ public Guid MonitoringNgoId { get; set; }
+ public string PhoneNumber { get; set; }
+ public string SmsMessage { get; set; }
+}
diff --git a/api/src/Feature.Form.Submission.SMS/Submit/Validator.cs b/api/src/Feature.Form.Submission.SMS/Submit/Validator.cs
new file mode 100644
index 000000000..84864a5df
--- /dev/null
+++ b/api/src/Feature.Form.Submission.SMS/Submit/Validator.cs
@@ -0,0 +1,13 @@
+
+using FastEndpoints;
+using FluentValidation;
+
+namespace Feature.Form.Submission.SMS.Submit;
+public class Validator : Validator
+{
+ public Validator()
+ {
+ RuleFor(r => r.PhoneNumber).NotEmpty();
+ RuleFor(r => r.SmsMessage).NotEmpty();
+ }
+}
diff --git a/api/src/Vote.Monitor.Core/CoreServicesInstaller.cs b/api/src/Vote.Monitor.Core/CoreServicesInstaller.cs
index 0e56667bc..b5c532675 100644
--- a/api/src/Vote.Monitor.Core/CoreServicesInstaller.cs
+++ b/api/src/Vote.Monitor.Core/CoreServicesInstaller.cs
@@ -32,4 +32,4 @@ public static IServiceCollection AddCoreServices(this IServiceCollection service
return services;
}
-}
\ No newline at end of file
+}
diff --git a/api/src/Vote.Monitor.Domain/Entities/MonitoringObserverAggregate/MonitoringObserver.cs b/api/src/Vote.Monitor.Domain/Entities/MonitoringObserverAggregate/MonitoringObserver.cs
index 8dd872803..1b2bc1b5c 100644
--- a/api/src/Vote.Monitor.Domain/Entities/MonitoringObserverAggregate/MonitoringObserver.cs
+++ b/api/src/Vote.Monitor.Domain/Entities/MonitoringObserverAggregate/MonitoringObserver.cs
@@ -13,13 +13,14 @@ public class MonitoringObserver : AuditableBaseEntity, IAggregateRoot
public Guid ObserverId { get; private set; }
public Observer Observer { get; private set; }
+ public string? PhoneNumber { get; private set; }
public MonitoringObserverStatus Status { get; private set; }
public string[] Tags { get; private set; }
private MonitoringObserver(Guid electionRoundId, Guid monitoringNgoId, Guid observerId, string[] tags,
- MonitoringObserverStatus status)
+ MonitoringObserverStatus status, string? phoneNumber = null)
{
Id = Guid.NewGuid();
ElectionRoundId = electionRoundId;
@@ -27,6 +28,7 @@ private MonitoringObserver(Guid electionRoundId, Guid monitoringNgoId, Guid obse
ObserverId = observerId;
Tags = tags;
Status = status;
+ PhoneNumber = phoneNumber;
}
public void Activate()
diff --git a/api/src/Vote.Monitor.Domain/Entities/PollingStationAggregate/PollingStation.cs b/api/src/Vote.Monitor.Domain/Entities/PollingStationAggregate/PollingStation.cs
index 33e38de47..e8d082719 100644
--- a/api/src/Vote.Monitor.Domain/Entities/PollingStationAggregate/PollingStation.cs
+++ b/api/src/Vote.Monitor.Domain/Entities/PollingStationAggregate/PollingStation.cs
@@ -17,7 +17,8 @@ internal PollingStation(ElectionRound electionRound,
string number,
string address,
int displayOrder,
- JsonDocument tags) : this(Guid.NewGuid(), electionRound, level1, level2, level3, level4, level5, number, address, displayOrder, tags)
+ JsonDocument tags,
+ string? secondaryId = null) : this(Guid.NewGuid(), electionRound, level1, level2, level3, level4, level5, number, address, displayOrder, tags, secondaryId)
{
}
@@ -32,10 +33,11 @@ public static PollingStation Create(ElectionRound electionRound,
int displayOrder,
JsonDocument tags,
DateTime createdOn,
- Guid userId)
+ Guid userId,
+ string? secondaryId = null)
{
var pollingStation = new PollingStation(electionRound, level1, level2, level3, level4, level5, number, address, displayOrder,
- tags);
+ tags, secondaryId);
pollingStation.CreatedOn = createdOn;
pollingStation.CreatedBy = userId;
@@ -44,6 +46,7 @@ public static PollingStation Create(ElectionRound electionRound,
}
public Guid Id { get; private set; }
+ public string? SecondaryId { get; private set; }
public ElectionRound ElectionRound { get; private set; }
public Guid ElectionRoundId { get; private set; }
@@ -58,7 +61,8 @@ internal PollingStation(
string number,
string address,
int displayOrder,
- JsonDocument tags)
+ JsonDocument tags,
+ string? secondaryId = null)
{
Id = id;
ElectionRoundId = electionRound.Id;
@@ -72,6 +76,7 @@ internal PollingStation(
Address = address;
DisplayOrder = displayOrder;
Tags = tags;
+ SecondaryId = secondaryId;
}
public string Level1 { get; private set; }
diff --git a/api/src/Vote.Monitor.Domain/EntitiesConfiguration/MonitoringObserverConfiguration.cs b/api/src/Vote.Monitor.Domain/EntitiesConfiguration/MonitoringObserverConfiguration.cs
index eb3a77aa0..584b243ab 100644
--- a/api/src/Vote.Monitor.Domain/EntitiesConfiguration/MonitoringObserverConfiguration.cs
+++ b/api/src/Vote.Monitor.Domain/EntitiesConfiguration/MonitoringObserverConfiguration.cs
@@ -10,6 +10,7 @@ public void Configure(EntityTypeBuilder builder)
builder.HasKey(e => e.Id);
builder.Property(e => e.Id).IsRequired();
builder.Property(e => e.Status).IsRequired();
+ builder.Property(e => e.PhoneNumber);
builder.Property(e => e.Tags).IsRequired();
builder.HasIndex(x => new { x.ElectionRoundId, x.Id }).IsUnique();
diff --git a/api/src/Vote.Monitor.Domain/EntitiesConfiguration/PollingStationConfiguration.cs b/api/src/Vote.Monitor.Domain/EntitiesConfiguration/PollingStationConfiguration.cs
index 6e5543f42..d0ea7d73e 100644
--- a/api/src/Vote.Monitor.Domain/EntitiesConfiguration/PollingStationConfiguration.cs
+++ b/api/src/Vote.Monitor.Domain/EntitiesConfiguration/PollingStationConfiguration.cs
@@ -9,6 +9,7 @@ public void Configure(EntityTypeBuilder builder)
builder.HasKey(p => p.Id);
builder.Property(p => p.Id).IsRequired();
+ builder.Property(p => p.SecondaryId).IsRequired().HasDefaultValue("").HasMaxLength(4);
builder.Property(p => p.Address).HasMaxLength(2024).IsRequired();
builder.Property(p => p.DisplayOrder).IsRequired();
builder.Property(p => p.Tags).IsRequired(false);
diff --git a/api/src/Vote.Monitor.Domain/Migrations/20250718135435_AddSmsFormSubmissionRelatedFields.Designer.cs b/api/src/Vote.Monitor.Domain/Migrations/20250718135435_AddSmsFormSubmissionRelatedFields.Designer.cs
new file mode 100644
index 000000000..76fae531b
--- /dev/null
+++ b/api/src/Vote.Monitor.Domain/Migrations/20250718135435_AddSmsFormSubmissionRelatedFields.Designer.cs
@@ -0,0 +1,7041 @@
+//
+using System;
+using System.Collections.Generic;
+using System.Text.Json;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using Vote.Monitor.Domain;
+
+#nullable disable
+
+namespace Vote.Monitor.Domain.Migrations
+{
+ [DbContext(typeof(VoteMonitorContext))]
+ [Migration("20250718135435_AddSmsFormSubmissionRelatedFields")]
+ partial class AddSmsFormSubmissionRelatedFields
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.10")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "hstore");
+ NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "uuid-ossp");
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("NormalizedName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasDatabaseName("RoleNameIndex");
+
+ b.ToTable("AspNetRoles", (string)null);
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("265e94b0-50fe-4546-b21c-83cb7e94aeff"),
+ Name = "PlatformAdmin",
+ NormalizedName = "PLATFORMADMIN"
+ },
+ new
+ {
+ Id = new Guid("3239f803-dda8-408b-93ad-0ed973a04e45"),
+ Name = "NgoAdmin",
+ NormalizedName = "NGOADMIN"
+ },
+ new
+ {
+ Id = new Guid("d1cbef39-62e0-4120-a42b-b01b029dc6ad"),
+ Name = "Observer",
+ NormalizedName = "OBSERVER"
+ });
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasColumnType("text");
+
+ b.Property("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property("RoleId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetRoleClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasColumnType("text");
+
+ b.Property("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property("UserId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
+ {
+ b.Property("LoginProvider")
+ .HasColumnType("text");
+
+ b.Property("ProviderKey")
+ .HasColumnType("text");
+
+ b.Property("ProviderDisplayName")
+ .HasColumnType("text");
+
+ b.Property("UserId")
+ .HasColumnType("uuid");
+
+ b.HasKey("LoginProvider", "ProviderKey");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserLogins", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("uuid");
+
+ b.Property("RoleId")
+ .HasColumnType("uuid");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetUserRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("uuid");
+
+ b.Property("LoginProvider")
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .HasColumnType("text");
+
+ b.Property("Value")
+ .HasColumnType("text");
+
+ b.HasKey("UserId", "LoginProvider", "Name");
+
+ b.ToTable("AspNetUserTokens", (string)null);
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.ApplicationUserAggregate.ApplicationUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("integer");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property("DisplayName")
+ .IsRequired()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("text")
+ .HasComputedColumnSql("\"FirstName\" || ' ' || \"LastName\"", true);
+
+ b.Property("Email")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("InvitationToken")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("PasswordHash")
+ .HasColumnType("text");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("text");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property("RefreshToken")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("RefreshTokenExpiryTime")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Role")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("SecurityStamp")
+ .HasColumnType("text");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex");
+
+ b.ToTable("AspNetUsers", (string)null);
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.AttachmentAggregate.Attachment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FilePath")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.Property("IsCompleted")
+ .HasColumnType("boolean");
+
+ b.Property("IsDeleted")
+ .HasColumnType("boolean");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("MimeType")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("MonitoringObserverId")
+ .HasColumnType("uuid");
+
+ b.Property("PollingStationId")
+ .HasColumnType("uuid");
+
+ b.Property("QuestionId")
+ .HasColumnType("uuid");
+
+ b.Property("UploadedFileName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("FormId");
+
+ b.HasIndex("MonitoringObserverId");
+
+ b.HasIndex("PollingStationId");
+
+ b.ToTable("Attachments", (string)null);
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.Auditing.Trail", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("AffectedColumns")
+ .HasColumnType("text");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NewValues")
+ .HasColumnType("text");
+
+ b.Property("OldValues")
+ .HasColumnType("text");
+
+ b.Property("PrimaryKey")
+ .HasColumnType("text");
+
+ b.Property("TableName")
+ .HasColumnType("text");
+
+ b.Property("Timestamp")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Type")
+ .HasColumnType("text");
+
+ b.Property("UserId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.ToTable("AuditTrails");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CitizenGuideAggregate.CitizenGuide", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FileName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FilePath")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("GuideType")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsDeleted")
+ .HasColumnType("boolean");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("MimeType")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("Text")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("UploadedFileName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("WebsiteUrl")
+ .HasMaxLength(2048)
+ .HasColumnType("character varying(2048)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.ToTable("CitizenGuides");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CitizenNotificationAggregate.CitizenNotification", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Body")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("SenderId")
+ .HasColumnType("uuid");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("SenderId");
+
+ b.ToTable("CitizenNotifications");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CitizenReportAggregate.CitizenReport", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Answers")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FollowUpStatus")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("text")
+ .HasDefaultValue("NotApplicable");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LocationId")
+ .HasColumnType("uuid");
+
+ b.Property("NumberOfFlaggedAnswers")
+ .HasColumnType("integer");
+
+ b.Property("NumberOfQuestionsAnswered")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("FormId");
+
+ b.HasIndex("LocationId");
+
+ b.ToTable("CitizenReports");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CitizenReportAttachmentAggregate.CitizenReportAttachment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CitizenReportId")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FilePath")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.Property("IsCompleted")
+ .HasColumnType("boolean");
+
+ b.Property("IsDeleted")
+ .HasColumnType("boolean");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("MimeType")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("QuestionId")
+ .HasColumnType("uuid");
+
+ b.Property("UploadedFileName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CitizenReportId");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("FormId");
+
+ b.ToTable("CitizenReportAttachments");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CitizenReportNoteAggregate.CitizenReportNote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CitizenReportId")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("QuestionId")
+ .HasColumnType("uuid");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(10000)
+ .HasColumnType("character varying(10000)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CitizenReportId");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("FormId");
+
+ b.ToTable("CitizenReportNotes");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CoalitionAggregate.Coalition", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LeaderId")
+ .HasColumnType("uuid");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("LeaderId");
+
+ b.ToTable("Coalitions");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CoalitionAggregate.CoalitionFormAccess", b =>
+ {
+ b.Property("CoalitionId")
+ .HasColumnType("uuid");
+
+ b.Property("MonitoringNgoId")
+ .HasColumnType("uuid");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.HasKey("CoalitionId", "MonitoringNgoId", "FormId");
+
+ b.HasIndex("FormId");
+
+ b.HasIndex("MonitoringNgoId");
+
+ b.ToTable("CoalitionFormAccess");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CoalitionAggregate.CoalitionGuideAccess", b =>
+ {
+ b.Property("CoalitionId")
+ .HasColumnType("uuid");
+
+ b.Property("MonitoringNgoId")
+ .HasColumnType("uuid");
+
+ b.Property("GuideId")
+ .HasColumnType("uuid");
+
+ b.HasKey("CoalitionId", "MonitoringNgoId", "GuideId");
+
+ b.HasIndex("GuideId");
+
+ b.HasIndex("MonitoringNgoId");
+
+ b.ToTable("CoalitionGuideAccess");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CoalitionAggregate.CoalitionMembership", b =>
+ {
+ b.Property("MonitoringNgoId")
+ .HasColumnType("uuid");
+
+ b.Property("CoalitionId")
+ .HasColumnType("uuid");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.HasKey("MonitoringNgoId", "CoalitionId");
+
+ b.HasIndex("CoalitionId");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("MonitoringNgoId", "ElectionRoundId")
+ .IsUnique();
+
+ b.HasIndex("MonitoringNgoId", "CoalitionId", "ElectionRoundId")
+ .IsUnique();
+
+ b.ToTable("CoalitionMemberships");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.CountryAggregate.Country", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("FullName")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("Iso2")
+ .IsRequired()
+ .HasMaxLength(2)
+ .HasColumnType("character varying(2)");
+
+ b.Property("Iso3")
+ .IsRequired()
+ .HasMaxLength(3)
+ .HasColumnType("character varying(3)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("NumericCode")
+ .IsRequired()
+ .HasMaxLength(3)
+ .HasColumnType("character varying(3)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Iso2")
+ .IsUnique();
+
+ b.HasIndex("Iso3")
+ .IsUnique();
+
+ b.HasIndex("NumericCode")
+ .IsUnique();
+
+ b.ToTable("Countries");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("edd4319b-86f3-24cb-248c-71da624c02f7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Islamic Republic of Afghanistan",
+ Iso2 = "AF",
+ Iso3 = "AFG",
+ Name = "Afghanistan",
+ NumericCode = "004"
+ },
+ new
+ {
+ Id = new Guid("a96fe9bb-4ef4-fca0-f38b-0ec729822f37"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Åland Islands",
+ Iso2 = "AX",
+ Iso3 = "ALA",
+ Name = "Åland Islands",
+ NumericCode = "248"
+ },
+ new
+ {
+ Id = new Guid("5aa0aeb7-4dc8-6a29-fc2f-35daec1541dd"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Albania",
+ Iso2 = "AL",
+ Iso3 = "ALB",
+ Name = "Albania",
+ NumericCode = "008"
+ },
+ new
+ {
+ Id = new Guid("fee6f04f-c4c1-e3e4-645d-bb6bb703aeb7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "People's Democratic Republic of Algeria",
+ Iso2 = "DZ",
+ Iso3 = "DZA",
+ Name = "Algeria",
+ NumericCode = "012"
+ },
+ new
+ {
+ Id = new Guid("538114de-7db0-9242-35e6-324fa7eff44d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "American Samoa",
+ Iso2 = "AS",
+ Iso3 = "ASM",
+ Name = "American Samoa",
+ NumericCode = "016"
+ },
+ new
+ {
+ Id = new Guid("bd4bbfc7-d8bc-9d8d-7f7c-7b299c94e9e5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Principality of Andorra",
+ Iso2 = "AD",
+ Iso3 = "AND",
+ Name = "Andorra",
+ NumericCode = "020"
+ },
+ new
+ {
+ Id = new Guid("478786f7-1842-8c1e-921c-12e7ed5329c5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Angola",
+ Iso2 = "AO",
+ Iso3 = "AGO",
+ Name = "Angola",
+ NumericCode = "024"
+ },
+ new
+ {
+ Id = new Guid("2b68fb11-a0e0-3d23-5fb8-99721ecfc182"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Anguilla",
+ Iso2 = "AI",
+ Iso3 = "AIA",
+ Name = "Anguilla",
+ NumericCode = "660"
+ },
+ new
+ {
+ Id = new Guid("a0098040-b7a0-59a1-e64b-0a9778b7f74c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Antarctica (the territory South of 60 deg S)",
+ Iso2 = "AQ",
+ Iso3 = "ATA",
+ Name = "Antarctica",
+ NumericCode = "010"
+ },
+ new
+ {
+ Id = new Guid("f3eef99a-661e-2c68-7a4c-3053e2f28007"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Antigua and Barbuda",
+ Iso2 = "AG",
+ Iso3 = "ATG",
+ Name = "Antigua and Barbuda",
+ NumericCode = "028"
+ },
+ new
+ {
+ Id = new Guid("a7afb7b1-b26d-4571-1a1f-3fff738ff21e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Argentine Republic",
+ Iso2 = "AR",
+ Iso3 = "ARG",
+ Name = "Argentina",
+ NumericCode = "032"
+ },
+ new
+ {
+ Id = new Guid("688af4c8-9d64-ae1c-147f-b8afd54801e3"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Armenia",
+ Iso2 = "AM",
+ Iso3 = "ARM",
+ Name = "Armenia",
+ NumericCode = "051"
+ },
+ new
+ {
+ Id = new Guid("e6c7651f-182e-cf9c-1ef9-6293b95b500c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Aruba",
+ Iso2 = "AW",
+ Iso3 = "ABW",
+ Name = "Aruba",
+ NumericCode = "533"
+ },
+ new
+ {
+ Id = new Guid("15639386-e4fc-120c-6916-c0c980e24be1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Commonwealth of Australia",
+ Iso2 = "AU",
+ Iso3 = "AUS",
+ Name = "Australia",
+ NumericCode = "036"
+ },
+ new
+ {
+ Id = new Guid("704254eb-6959-8ddc-a5df-ac8f9658dc68"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Austria",
+ Iso2 = "AT",
+ Iso3 = "AUT",
+ Name = "Austria",
+ NumericCode = "040"
+ },
+ new
+ {
+ Id = new Guid("008c3138-73d8-dbbc-f1dd-521e4c68bcf1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Azerbaijan",
+ Iso2 = "AZ",
+ Iso3 = "AZE",
+ Name = "Azerbaijan",
+ NumericCode = "031"
+ },
+ new
+ {
+ Id = new Guid("46e88019-c521-57b2-d1c0-c0e2478d3b05"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Commonwealth of the Bahamas",
+ Iso2 = "BS",
+ Iso3 = "BHS",
+ Name = "Bahamas",
+ NumericCode = "044"
+ },
+ new
+ {
+ Id = new Guid("44caa0f4-1e78-d2fb-96be-d01b3224bdc1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Bahrain",
+ Iso2 = "BH",
+ Iso3 = "BHR",
+ Name = "Bahrain",
+ NumericCode = "048"
+ },
+ new
+ {
+ Id = new Guid("809c3424-8654-b82c-cbd4-d857d096943e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "People's Republic of Bangladesh",
+ Iso2 = "BD",
+ Iso3 = "BGD",
+ Name = "Bangladesh",
+ NumericCode = "050"
+ },
+ new
+ {
+ Id = new Guid("316c68fc-9144-f6e1-8bf1-899fc54b2327"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Barbados",
+ Iso2 = "BB",
+ Iso3 = "BRB",
+ Name = "Barbados",
+ NumericCode = "052"
+ },
+ new
+ {
+ Id = new Guid("d97b5460-11ab-45c5-9a6f-ffa441ed70d6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Belarus",
+ Iso2 = "BY",
+ Iso3 = "BLR",
+ Name = "Belarus",
+ NumericCode = "112"
+ },
+ new
+ {
+ Id = new Guid("0797a7d5-bbc0-2e52-0de8-14a42fc80baa"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Belgium",
+ Iso2 = "BE",
+ Iso3 = "BEL",
+ Name = "Belgium",
+ NumericCode = "056"
+ },
+ new
+ {
+ Id = new Guid("c89e02a0-9506-90df-5545-b98a2453cd63"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Belize",
+ Iso2 = "BZ",
+ Iso3 = "BLZ",
+ Name = "Belize",
+ NumericCode = "084"
+ },
+ new
+ {
+ Id = new Guid("96a22cee-9af7-8f03-b483-b3e774a36d3b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Benin",
+ Iso2 = "BJ",
+ Iso3 = "BEN",
+ Name = "Benin",
+ NumericCode = "204"
+ },
+ new
+ {
+ Id = new Guid("ca2a5560-d4c4-3c87-3090-6f5436310b55"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bermuda",
+ Iso2 = "BM",
+ Iso3 = "BMU",
+ Name = "Bermuda",
+ NumericCode = "060"
+ },
+ new
+ {
+ Id = new Guid("8ed6a34e-8135-27fa-f86a-caa247b29768"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Bhutan",
+ Iso2 = "BT",
+ Iso3 = "BTN",
+ Name = "Bhutan",
+ NumericCode = "064"
+ },
+ new
+ {
+ Id = new Guid("f33ced84-eb43-fb39-ef79-b266e4d4cd94"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Plurinational State of Bolivia",
+ Iso2 = "BO",
+ Iso3 = "BOL",
+ Name = "Bolivia",
+ NumericCode = "068"
+ },
+ new
+ {
+ Id = new Guid("d8101f9d-8313-4054-c5f3-42c7a1c72862"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bonaire, Sint Eustatius and Saba",
+ Iso2 = "BQ",
+ Iso3 = "BES",
+ Name = "Bonaire, Sint Eustatius and Saba",
+ NumericCode = "535"
+ },
+ new
+ {
+ Id = new Guid("a7716d29-6ef6-b775-51c5-97094536329d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bosnia and Herzegovina",
+ Iso2 = "BA",
+ Iso3 = "BIH",
+ Name = "Bosnia and Herzegovina",
+ NumericCode = "070"
+ },
+ new
+ {
+ Id = new Guid("14f190c6-97c9-3e12-2eba-db17c59d6a04"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Botswana",
+ Iso2 = "BW",
+ Iso3 = "BWA",
+ Name = "Botswana",
+ NumericCode = "072"
+ },
+ new
+ {
+ Id = new Guid("32da0208-9048-1339-a8ee-6955cfff4c12"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bouvet Island (Bouvetøya)",
+ Iso2 = "BV",
+ Iso3 = "BVT",
+ Name = "Bouvet Island (Bouvetøya)",
+ NumericCode = "074"
+ },
+ new
+ {
+ Id = new Guid("5283afbb-2744-e930-2c16-c5ea6b0ff7cc"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federative Republic of Brazil",
+ Iso2 = "BR",
+ Iso3 = "BRA",
+ Name = "Brazil",
+ NumericCode = "076"
+ },
+ new
+ {
+ Id = new Guid("b8b09512-ea4c-4a61-9331-304f55324ef7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "British Indian Ocean Territory (Chagos Archipelago)",
+ Iso2 = "IO",
+ Iso3 = "IOT",
+ Name = "British Indian Ocean Territory (Chagos Archipelago)",
+ NumericCode = "086"
+ },
+ new
+ {
+ Id = new Guid("39be5e86-aea5-f64f-fd7e-1017fe24e543"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "British Virgin Islands",
+ Iso2 = "VG",
+ Iso3 = "VGB",
+ Name = "British Virgin Islands",
+ NumericCode = "092"
+ },
+ new
+ {
+ Id = new Guid("ed6278e0-436c-9fd9-0b9e-44fd424cbd1b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Brunei Darussalam",
+ Iso2 = "BN",
+ Iso3 = "BRN",
+ Name = "Brunei Darussalam",
+ NumericCode = "096"
+ },
+ new
+ {
+ Id = new Guid("46576b73-c05b-7498-5b07-9bbf59b7645d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Bulgaria",
+ Iso2 = "BG",
+ Iso3 = "BGR",
+ Name = "Bulgaria",
+ NumericCode = "100"
+ },
+ new
+ {
+ Id = new Guid("42697d56-52cf-b411-321e-c51929f02f90"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Burkina Faso",
+ Iso2 = "BF",
+ Iso3 = "BFA",
+ Name = "Burkina Faso",
+ NumericCode = "854"
+ },
+ new
+ {
+ Id = new Guid("75e4464b-a784-63b8-1ecc-69ee1f09f43f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Burundi",
+ Iso2 = "BI",
+ Iso3 = "BDI",
+ Name = "Burundi",
+ NumericCode = "108"
+ },
+ new
+ {
+ Id = new Guid("c9702851-1f67-f2a6-89d4-37b3fbb12044"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Cambodia",
+ Iso2 = "KH",
+ Iso3 = "KHM",
+ Name = "Cambodia",
+ NumericCode = "116"
+ },
+ new
+ {
+ Id = new Guid("c0b7e39e-223a-ebb0-b899-5404573bbdb7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Cameroon",
+ Iso2 = "CM",
+ Iso3 = "CMR",
+ Name = "Cameroon",
+ NumericCode = "120"
+ },
+ new
+ {
+ Id = new Guid("5c0e654b-8547-5d02-ee7b-d65e3c5c5273"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Canada",
+ Iso2 = "CA",
+ Iso3 = "CAN",
+ Name = "Canada",
+ NumericCode = "124"
+ },
+ new
+ {
+ Id = new Guid("17ed5f0f-e091-94ff-0512-ad291bde94d7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Cabo Verde",
+ Iso2 = "CV",
+ Iso3 = "CPV",
+ Name = "Cabo Verde",
+ NumericCode = "132"
+ },
+ new
+ {
+ Id = new Guid("3c5828e0-16a8-79ba-4e5c-9b45065df113"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Cayman Islands",
+ Iso2 = "KY",
+ Iso3 = "CYM",
+ Name = "Cayman Islands",
+ NumericCode = "136"
+ },
+ new
+ {
+ Id = new Guid("b4e0625c-7597-c185-b8ae-cfb35a731f2f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Central African Republic",
+ Iso2 = "CF",
+ Iso3 = "CAF",
+ Name = "Central African Republic",
+ NumericCode = "140"
+ },
+ new
+ {
+ Id = new Guid("2a1ca5b6-fba0-cfa8-9928-d7a2382bc4d7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Chad",
+ Iso2 = "TD",
+ Iso3 = "TCD",
+ Name = "Chad",
+ NumericCode = "148"
+ },
+ new
+ {
+ Id = new Guid("ad4f938a-bf7b-684b-2c9e-e824d3fa3863"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Chile",
+ Iso2 = "CL",
+ Iso3 = "CHL",
+ Name = "Chile",
+ NumericCode = "152"
+ },
+ new
+ {
+ Id = new Guid("8250c49f-9438-7c2e-f403-54d962db0c18"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "People's Republic of China",
+ Iso2 = "CN",
+ Iso3 = "CHN",
+ Name = "China",
+ NumericCode = "156"
+ },
+ new
+ {
+ Id = new Guid("0f1ba59e-ade5-23e5-6fce-e2fd3282e114"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Christmas Island",
+ Iso2 = "CX",
+ Iso3 = "CXR",
+ Name = "Christmas Island",
+ NumericCode = "162"
+ },
+ new
+ {
+ Id = new Guid("a16263a5-810c-bf6a-206d-72cb914e2d5c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Cocos (Keeling) Islands",
+ Iso2 = "CC",
+ Iso3 = "CCK",
+ Name = "Cocos (Keeling) Islands",
+ NumericCode = "166"
+ },
+ new
+ {
+ Id = new Guid("c64288fc-d941-0615-47f9-28e6c294ce26"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Colombia",
+ Iso2 = "CO",
+ Iso3 = "COL",
+ Name = "Colombia",
+ NumericCode = "170"
+ },
+ new
+ {
+ Id = new Guid("5e7a08f2-7d59-bcdb-7ddd-876b87181420"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Union of the Comoros",
+ Iso2 = "KM",
+ Iso3 = "COM",
+ Name = "Comoros",
+ NumericCode = "174"
+ },
+ new
+ {
+ Id = new Guid("1258ec90-c47e-ff72-b7e3-f90c3ee320f8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Democratic Republic of the Congo",
+ Iso2 = "CD",
+ Iso3 = "COD",
+ Name = "Congo",
+ NumericCode = "180"
+ },
+ new
+ {
+ Id = new Guid("1934954c-66c2-6226-c5b6-491065a3e4c0"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of the Congo",
+ Iso2 = "CG",
+ Iso3 = "COG",
+ Name = "Congo",
+ NumericCode = "178"
+ },
+ new
+ {
+ Id = new Guid("af79558d-51fb-b08d-185b-afeb983ab99b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Cook Islands",
+ Iso2 = "CK",
+ Iso3 = "COK",
+ Name = "Cook Islands",
+ NumericCode = "184"
+ },
+ new
+ {
+ Id = new Guid("d13935c1-8956-1399-7c4e-0354795cd37b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Costa Rica",
+ Iso2 = "CR",
+ Iso3 = "CRI",
+ Name = "Costa Rica",
+ NumericCode = "188"
+ },
+ new
+ {
+ Id = new Guid("5be18efe-6db8-a727-7f2a-62bd71bc6593"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Cote d'Ivoire",
+ Iso2 = "CI",
+ Iso3 = "CIV",
+ Name = "Cote d'Ivoire",
+ NumericCode = "384"
+ },
+ new
+ {
+ Id = new Guid("1f8be615-5746-277e-d82b-47596b5bb922"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Croatia",
+ Iso2 = "HR",
+ Iso3 = "HRV",
+ Name = "Croatia",
+ NumericCode = "191"
+ },
+ new
+ {
+ Id = new Guid("57765d87-2424-2c86-ad9c-1af58ef3127a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Cuba",
+ Iso2 = "CU",
+ Iso3 = "CUB",
+ Name = "Cuba",
+ NumericCode = "192"
+ },
+ new
+ {
+ Id = new Guid("3345e205-3e72-43ed-de1b-ac6e050543e5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Curaçao",
+ Iso2 = "CW",
+ Iso3 = "CUW",
+ Name = "Curaçao",
+ NumericCode = "531"
+ },
+ new
+ {
+ Id = new Guid("df20d0d7-9fbe-e725-d966-4fdf9f5c9dfb"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Cyprus",
+ Iso2 = "CY",
+ Iso3 = "CYP",
+ Name = "Cyprus",
+ NumericCode = "196"
+ },
+ new
+ {
+ Id = new Guid("9d4ec95b-974a-f5bb-bb4b-ba6747440631"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Czech Republic",
+ Iso2 = "CZ",
+ Iso3 = "CZE",
+ Name = "Czechia",
+ NumericCode = "203"
+ },
+ new
+ {
+ Id = new Guid("8a4fcb23-f3e6-fb5b-8cda-975872f600d5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Denmark",
+ Iso2 = "DK",
+ Iso3 = "DNK",
+ Name = "Denmark",
+ NumericCode = "208"
+ },
+ new
+ {
+ Id = new Guid("37a79267-d38a-aaef-577a-aa68a96880ae"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Djibouti",
+ Iso2 = "DJ",
+ Iso3 = "DJI",
+ Name = "Djibouti",
+ NumericCode = "262"
+ },
+ new
+ {
+ Id = new Guid("19ea3a6a-1a76-23c8-8e4e-1d298f15207f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Commonwealth of Dominica",
+ Iso2 = "DM",
+ Iso3 = "DMA",
+ Name = "Dominica",
+ NumericCode = "212"
+ },
+ new
+ {
+ Id = new Guid("b2c4d2d7-7ada-7864-426f-10a28d9f9eba"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Dominican Republic",
+ Iso2 = "DO",
+ Iso3 = "DOM",
+ Name = "Dominican Republic",
+ NumericCode = "214"
+ },
+ new
+ {
+ Id = new Guid("49c82f1b-968d-b5e7-8559-e39567d46787"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Ecuador",
+ Iso2 = "EC",
+ Iso3 = "ECU",
+ Name = "Ecuador",
+ NumericCode = "218"
+ },
+ new
+ {
+ Id = new Guid("ee5dfc29-80f1-86ae-cde7-02484a18907a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Arab Republic of Egypt",
+ Iso2 = "EG",
+ Iso3 = "EGY",
+ Name = "Egypt",
+ NumericCode = "818"
+ },
+ new
+ {
+ Id = new Guid("4d8bcda4-5598-16cd-b379-97eb7a5e1c29"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of El Salvador",
+ Iso2 = "SV",
+ Iso3 = "SLV",
+ Name = "El Salvador",
+ NumericCode = "222"
+ },
+ new
+ {
+ Id = new Guid("824392e8-a6cc-0cd4-af13-3067dad3258e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Equatorial Guinea",
+ Iso2 = "GQ",
+ Iso3 = "GNQ",
+ Name = "Equatorial Guinea",
+ NumericCode = "226"
+ },
+ new
+ {
+ Id = new Guid("8b5a477a-070a-a84f-bd3b-f54dc2a172de"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Eritrea",
+ Iso2 = "ER",
+ Iso3 = "ERI",
+ Name = "Eritrea",
+ NumericCode = "232"
+ },
+ new
+ {
+ Id = new Guid("2dc643bd-cc6c-eb0c-7314-44123576f0ee"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Estonia",
+ Iso2 = "EE",
+ Iso3 = "EST",
+ Name = "Estonia",
+ NumericCode = "233"
+ },
+ new
+ {
+ Id = new Guid("e75515a6-63cf-3612-a3a2-befa0d7048a7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federal Democratic Republic of Ethiopia",
+ Iso2 = "ET",
+ Iso3 = "ETH",
+ Name = "Ethiopia",
+ NumericCode = "231"
+ },
+ new
+ {
+ Id = new Guid("0d4fe6e6-ea1e-d1ce-5134-6c0c1a696a00"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Faroe Islands",
+ Iso2 = "FO",
+ Iso3 = "FRO",
+ Name = "Faroe Islands",
+ NumericCode = "234"
+ },
+ new
+ {
+ Id = new Guid("b86375dc-edbb-922c-9ed4-2f724094a5a2"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Falkland Islands (Malvinas)",
+ Iso2 = "FK",
+ Iso3 = "FLK",
+ Name = "Falkland Islands (Malvinas)",
+ NumericCode = "238"
+ },
+ new
+ {
+ Id = new Guid("0e2a1681-d852-67ae-7387-0d04be9e7fd3"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Fiji",
+ Iso2 = "FJ",
+ Iso3 = "FJI",
+ Name = "Fiji",
+ NumericCode = "242"
+ },
+ new
+ {
+ Id = new Guid("5a5d9168-081b-1e02-1fbb-cdfa910e526c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Finland",
+ Iso2 = "FI",
+ Iso3 = "FIN",
+ Name = "Finland",
+ NumericCode = "246"
+ },
+ new
+ {
+ Id = new Guid("b2261c50-1a57-7f1f-d72d-f8c21593874f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "French Republic",
+ Iso2 = "FR",
+ Iso3 = "FRA",
+ Name = "France",
+ NumericCode = "250"
+ },
+ new
+ {
+ Id = new Guid("ac6cde6e-f645-d04e-8afc-0391ecf38a70"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "French Guiana",
+ Iso2 = "GF",
+ Iso3 = "GUF",
+ Name = "French Guiana",
+ NumericCode = "254"
+ },
+ new
+ {
+ Id = new Guid("11dbce82-a154-7aee-7b5e-d5981f220572"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "French Polynesia",
+ Iso2 = "PF",
+ Iso3 = "PYF",
+ Name = "French Polynesia",
+ NumericCode = "258"
+ },
+ new
+ {
+ Id = new Guid("903bee63-bcf0-0264-6eaf-a8cde95c5f41"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "French Southern Territories",
+ Iso2 = "TF",
+ Iso3 = "ATF",
+ Name = "French Southern Territories",
+ NumericCode = "260"
+ },
+ new
+ {
+ Id = new Guid("4826bc0f-235e-572f-2b1a-21f1c9e05f83"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Gabonese Republic",
+ Iso2 = "GA",
+ Iso3 = "GAB",
+ Name = "Gabon",
+ NumericCode = "266"
+ },
+ new
+ {
+ Id = new Guid("a40b91b3-cc13-2470-65f0-a0fdc946f2a2"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of the Gambia",
+ Iso2 = "GM",
+ Iso3 = "GMB",
+ Name = "Gambia",
+ NumericCode = "270"
+ },
+ new
+ {
+ Id = new Guid("980176e8-7d9d-9729-b3e9-ebc455fb8fc4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Georgia",
+ Iso2 = "GE",
+ Iso3 = "GEO",
+ Name = "Georgia",
+ NumericCode = "268"
+ },
+ new
+ {
+ Id = new Guid("46ef1468-86f6-0c99-f4e9-46f966167b05"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federal Republic of Germany",
+ Iso2 = "DE",
+ Iso3 = "DEU",
+ Name = "Germany",
+ NumericCode = "276"
+ },
+ new
+ {
+ Id = new Guid("6d0c77a7-a4aa-c2bd-2db6-0e2ad2d61f8a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Ghana",
+ Iso2 = "GH",
+ Iso3 = "GHA",
+ Name = "Ghana",
+ NumericCode = "288"
+ },
+ new
+ {
+ Id = new Guid("8e0de349-f9ab-2bca-3910-efd48bf1170a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Gibraltar",
+ Iso2 = "GI",
+ Iso3 = "GIB",
+ Name = "Gibraltar",
+ NumericCode = "292"
+ },
+ new
+ {
+ Id = new Guid("4fc1a9dc-cc74-f6ce-5743-c5cee8d709ef"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Hellenic Republic of Greece",
+ Iso2 = "GR",
+ Iso3 = "GRC",
+ Name = "Greece",
+ NumericCode = "300"
+ },
+ new
+ {
+ Id = new Guid("2f00fe86-a06b-dc95-0ea7-4520d1dec784"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Greenland",
+ Iso2 = "GL",
+ Iso3 = "GRL",
+ Name = "Greenland",
+ NumericCode = "304"
+ },
+ new
+ {
+ Id = new Guid("ff5b4d88-c179-ff0d-6285-cf46ba475d7d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Grenada",
+ Iso2 = "GD",
+ Iso3 = "GRD",
+ Name = "Grenada",
+ NumericCode = "308"
+ },
+ new
+ {
+ Id = new Guid("3bcd2aad-fb69-09f4-1ad7-2c7f5fa23f9f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Guadeloupe",
+ Iso2 = "GP",
+ Iso3 = "GLP",
+ Name = "Guadeloupe",
+ NumericCode = "312"
+ },
+ new
+ {
+ Id = new Guid("096a8586-9702-6fec-5f6a-6eb3b7b7837f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Guam",
+ Iso2 = "GU",
+ Iso3 = "GUM",
+ Name = "Guam",
+ NumericCode = "316"
+ },
+ new
+ {
+ Id = new Guid("d24b46ba-8e9d-2a09-7995-e35e8ae54f6b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Guatemala",
+ Iso2 = "GT",
+ Iso3 = "GTM",
+ Name = "Guatemala",
+ NumericCode = "320"
+ },
+ new
+ {
+ Id = new Guid("5b0ee3be-596d-bdc1-f101-00ef33170655"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bailiwick of Guernsey",
+ Iso2 = "GG",
+ Iso3 = "GGY",
+ Name = "Guernsey",
+ NumericCode = "831"
+ },
+ new
+ {
+ Id = new Guid("3ffe68ca-7350-175b-4e95-0c34f54dc1f4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Guinea",
+ Iso2 = "GN",
+ Iso3 = "GIN",
+ Name = "Guinea",
+ NumericCode = "324"
+ },
+ new
+ {
+ Id = new Guid("a9a5f440-a9bd-487d-e7f4-914df0d52fa6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Guinea-Bissau",
+ Iso2 = "GW",
+ Iso3 = "GNB",
+ Name = "Guinea-Bissau",
+ NumericCode = "624"
+ },
+ new
+ {
+ Id = new Guid("a9949ac7-8d2d-32b5-3f4f-e2a3ef291a67"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Co-operative Republic of Guyana",
+ Iso2 = "GY",
+ Iso3 = "GUY",
+ Name = "Guyana",
+ NumericCode = "328"
+ },
+ new
+ {
+ Id = new Guid("2bebebe4-edaa-9160-5a0c-4d99048bd8d5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Haiti",
+ Iso2 = "HT",
+ Iso3 = "HTI",
+ Name = "Haiti",
+ NumericCode = "332"
+ },
+ new
+ {
+ Id = new Guid("592b4658-a210-ab0a-5660-3dcc673dc581"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Heard Island and McDonald Islands",
+ Iso2 = "HM",
+ Iso3 = "HMD",
+ Name = "Heard Island and McDonald Islands",
+ NumericCode = "334"
+ },
+ new
+ {
+ Id = new Guid("d0e11a85-6623-69f5-bd95-3779dfeec297"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Holy See (Vatican City State)",
+ Iso2 = "VA",
+ Iso3 = "VAT",
+ Name = "Holy See (Vatican City State)",
+ NumericCode = "336"
+ },
+ new
+ {
+ Id = new Guid("0aebadaa-91b2-8794-c153-4f903a2a1004"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Honduras",
+ Iso2 = "HN",
+ Iso3 = "HND",
+ Name = "Honduras",
+ NumericCode = "340"
+ },
+ new
+ {
+ Id = new Guid("500bb0de-61f5-dc9b-0488-1c507456ea4d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Hong Kong Special Administrative Region of China",
+ Iso2 = "HK",
+ Iso3 = "HKG",
+ Name = "Hong Kong",
+ NumericCode = "344"
+ },
+ new
+ {
+ Id = new Guid("dcf19e1d-74a6-7b8b-a5ed-76b94a8ac2a7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Hungary",
+ Iso2 = "HU",
+ Iso3 = "HUN",
+ Name = "Hungary",
+ NumericCode = "348"
+ },
+ new
+ {
+ Id = new Guid("4ee6400d-5534-7c67-1521-870d6b732366"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Iceland",
+ Iso2 = "IS",
+ Iso3 = "ISL",
+ Name = "Iceland",
+ NumericCode = "352"
+ },
+ new
+ {
+ Id = new Guid("72d8d1fe-d5f6-f440-1185-82ec69427027"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of India",
+ Iso2 = "IN",
+ Iso3 = "IND",
+ Name = "India",
+ NumericCode = "356"
+ },
+ new
+ {
+ Id = new Guid("1d974338-decf-08e5-3e62-89e1bbdbb003"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Indonesia",
+ Iso2 = "ID",
+ Iso3 = "IDN",
+ Name = "Indonesia",
+ NumericCode = "360"
+ },
+ new
+ {
+ Id = new Guid("b3460bab-2a35-57bc-17e2-4e117748bbb1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Islamic Republic of Iran",
+ Iso2 = "IR",
+ Iso3 = "IRN",
+ Name = "Iran",
+ NumericCode = "364"
+ },
+ new
+ {
+ Id = new Guid("6c8be2e6-8c2e-cd80-68a6-d18c80d0eedc"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Iraq",
+ Iso2 = "IQ",
+ Iso3 = "IRQ",
+ Name = "Iraq",
+ NumericCode = "368"
+ },
+ new
+ {
+ Id = new Guid("294978f0-2702-d35d-cfc4-e676148aea2e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Ireland",
+ Iso2 = "IE",
+ Iso3 = "IRL",
+ Name = "Ireland",
+ NumericCode = "372"
+ },
+ new
+ {
+ Id = new Guid("a1b83be0-6a9b-c8a9-2cce-531705a29664"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Isle of Man",
+ Iso2 = "IM",
+ Iso3 = "IMN",
+ Name = "Isle of Man",
+ NumericCode = "833"
+ },
+ new
+ {
+ Id = new Guid("7ffa909b-8a6a-3028-9589-fcc3dfa530a8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Israel",
+ Iso2 = "IL",
+ Iso3 = "ISR",
+ Name = "Israel",
+ NumericCode = "376"
+ },
+ new
+ {
+ Id = new Guid("7bbf15f4-a907-c0b2-7029-144aafb3c59d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Italy",
+ Iso2 = "IT",
+ Iso3 = "ITA",
+ Name = "Italy",
+ NumericCode = "380"
+ },
+ new
+ {
+ Id = new Guid("6699efd5-0939-7812-315e-21f37b279ee9"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Jamaica",
+ Iso2 = "JM",
+ Iso3 = "JAM",
+ Name = "Jamaica",
+ NumericCode = "388"
+ },
+ new
+ {
+ Id = new Guid("13c69e56-375d-8a7e-c326-be2be2fd4cd8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Japan",
+ Iso2 = "JP",
+ Iso3 = "JPN",
+ Name = "Japan",
+ NumericCode = "392"
+ },
+ new
+ {
+ Id = new Guid("65d871be-4a1d-a632-9cdb-62e3ff04928d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bailiwick of Jersey",
+ Iso2 = "JE",
+ Iso3 = "JEY",
+ Name = "Jersey",
+ NumericCode = "832"
+ },
+ new
+ {
+ Id = new Guid("9ae7ad80-9ce7-6657-75cf-28b4c0254238"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Hashemite Kingdom of Jordan",
+ Iso2 = "JO",
+ Iso3 = "JOR",
+ Name = "Jordan",
+ NumericCode = "400"
+ },
+ new
+ {
+ Id = new Guid("b723594d-7800-0f37-db86-0f6b85bb6cf9"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Kazakhstan",
+ Iso2 = "KZ",
+ Iso3 = "KAZ",
+ Name = "Kazakhstan",
+ NumericCode = "398"
+ },
+ new
+ {
+ Id = new Guid("b32fe2b5-a06e-0d76-ffd2-f186c3e64b15"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Kenya",
+ Iso2 = "KE",
+ Iso3 = "KEN",
+ Name = "Kenya",
+ NumericCode = "404"
+ },
+ new
+ {
+ Id = new Guid("914618fd-86f9-827a-91b8-826f0db9e02d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Kiribati",
+ Iso2 = "KI",
+ Iso3 = "KIR",
+ Name = "Kiribati",
+ NumericCode = "296"
+ },
+ new
+ {
+ Id = new Guid("f70ae426-f130-5637-0383-a5b63a06c500"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Democratic People's Republic of Korea",
+ Iso2 = "KP",
+ Iso3 = "PRK",
+ Name = "Korea",
+ NumericCode = "408"
+ },
+ new
+ {
+ Id = new Guid("7bf934fa-bcf4-80b5-fd7d-ab4cca45c67b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Korea",
+ Iso2 = "KR",
+ Iso3 = "KOR",
+ Name = "Korea",
+ NumericCode = "410"
+ },
+ new
+ {
+ Id = new Guid("b6f70436-9515-7ef8-af57-aad196503499"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Kuwait",
+ Iso2 = "KW",
+ Iso3 = "KWT",
+ Name = "Kuwait",
+ NumericCode = "414"
+ },
+ new
+ {
+ Id = new Guid("0932ed88-c79f-591a-d684-9a77735f947e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kyrgyz Republic",
+ Iso2 = "KG",
+ Iso3 = "KGZ",
+ Name = "Kyrgyz Republic",
+ NumericCode = "417"
+ },
+ new
+ {
+ Id = new Guid("c4754c00-cfa5-aa6f-a9c8-a200457de7a8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Lao People's Democratic Republic",
+ Iso2 = "LA",
+ Iso3 = "LAO",
+ Name = "Lao People's Democratic Republic",
+ NumericCode = "418"
+ },
+ new
+ {
+ Id = new Guid("9205dbfc-60cd-91d9-b0b8-8a18a3755286"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Latvia",
+ Iso2 = "LV",
+ Iso3 = "LVA",
+ Name = "Latvia",
+ NumericCode = "428"
+ },
+ new
+ {
+ Id = new Guid("1e5c0dcc-83e9-f275-c81d-3bc49f88e70c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Lebanese Republic",
+ Iso2 = "LB",
+ Iso3 = "LBN",
+ Name = "Lebanon",
+ NumericCode = "422"
+ },
+ new
+ {
+ Id = new Guid("bf210ee6-6c75-cf08-052e-5c3e608aed15"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Lesotho",
+ Iso2 = "LS",
+ Iso3 = "LSO",
+ Name = "Lesotho",
+ NumericCode = "426"
+ },
+ new
+ {
+ Id = new Guid("ee926d09-799c-7c6a-2419-a6ff814b2c03"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Liberia",
+ Iso2 = "LR",
+ Iso3 = "LBR",
+ Name = "Liberia",
+ NumericCode = "430"
+ },
+ new
+ {
+ Id = new Guid("695c85b3-a6c6-c217-9be8-3baebc7719ce"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Libya",
+ Iso2 = "LY",
+ Iso3 = "LBY",
+ Name = "Libya",
+ NumericCode = "434"
+ },
+ new
+ {
+ Id = new Guid("9d6e6446-185e-235e-8771-9eb2d19f22e7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Principality of Liechtenstein",
+ Iso2 = "LI",
+ Iso3 = "LIE",
+ Name = "Liechtenstein",
+ NumericCode = "438"
+ },
+ new
+ {
+ Id = new Guid("52538361-bbdf-fafb-e434-5655fc7451e5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Lithuania",
+ Iso2 = "LT",
+ Iso3 = "LTU",
+ Name = "Lithuania",
+ NumericCode = "440"
+ },
+ new
+ {
+ Id = new Guid("70673250-4cc3-3ba1-a42c-6b62ea8ab1d5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Grand Duchy of Luxembourg",
+ Iso2 = "LU",
+ Iso3 = "LUX",
+ Name = "Luxembourg",
+ NumericCode = "442"
+ },
+ new
+ {
+ Id = new Guid("8d32a12d-3230-1431-8fbb-72c789184345"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Macao Special Administrative Region of China",
+ Iso2 = "MO",
+ Iso3 = "MAC",
+ Name = "Macao",
+ NumericCode = "446"
+ },
+ new
+ {
+ Id = new Guid("976e496f-ca38-d113-1697-8af2d9a3b159"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Madagascar",
+ Iso2 = "MG",
+ Iso3 = "MDG",
+ Name = "Madagascar",
+ NumericCode = "450"
+ },
+ new
+ {
+ Id = new Guid("fbf4479d-d70d-c76e-b053-699362443a17"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Malawi",
+ Iso2 = "MW",
+ Iso3 = "MWI",
+ Name = "Malawi",
+ NumericCode = "454"
+ },
+ new
+ {
+ Id = new Guid("d292ea2d-fbb6-7c1e-cb7d-23d552673776"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Malaysia",
+ Iso2 = "MY",
+ Iso3 = "MYS",
+ Name = "Malaysia",
+ NumericCode = "458"
+ },
+ new
+ {
+ Id = new Guid("1d2aa3ab-e1c3-8c76-9be6-7a3b3eca35da"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Maldives",
+ Iso2 = "MV",
+ Iso3 = "MDV",
+ Name = "Maldives",
+ NumericCode = "462"
+ },
+ new
+ {
+ Id = new Guid("c03d71a5-b215-8672-ec0c-dd8fe5c20e05"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Mali",
+ Iso2 = "ML",
+ Iso3 = "MLI",
+ Name = "Mali",
+ NumericCode = "466"
+ },
+ new
+ {
+ Id = new Guid("f0219540-8b2c-bd29-4f76-b832de53a56f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Malta",
+ Iso2 = "MT",
+ Iso3 = "MLT",
+ Name = "Malta",
+ NumericCode = "470"
+ },
+ new
+ {
+ Id = new Guid("943d2419-2ca6-95f8-9c3b-ed445aea0371"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of the Marshall Islands",
+ Iso2 = "MH",
+ Iso3 = "MHL",
+ Name = "Marshall Islands",
+ NumericCode = "584"
+ },
+ new
+ {
+ Id = new Guid("fc78fa89-b372-dcf7-7f1c-1e1bb14ecbe7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Martinique",
+ Iso2 = "MQ",
+ Iso3 = "MTQ",
+ Name = "Martinique",
+ NumericCode = "474"
+ },
+ new
+ {
+ Id = new Guid("74da982f-cf20-e1b4-517b-a040511af23c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Islamic Republic of Mauritania",
+ Iso2 = "MR",
+ Iso3 = "MRT",
+ Name = "Mauritania",
+ NumericCode = "478"
+ },
+ new
+ {
+ Id = new Guid("1b634ca2-2b90-7e54-715a-74cee7e4d294"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Mauritius",
+ Iso2 = "MU",
+ Iso3 = "MUS",
+ Name = "Mauritius",
+ NumericCode = "480"
+ },
+ new
+ {
+ Id = new Guid("08a999e4-e420-b864-2864-bef78c138448"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Mayotte",
+ Iso2 = "YT",
+ Iso3 = "MYT",
+ Name = "Mayotte",
+ NumericCode = "175"
+ },
+ new
+ {
+ Id = new Guid("a9940e91-93ef-19f7-79c0-00d31c6a9f87"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United Mexican States",
+ Iso2 = "MX",
+ Iso3 = "MEX",
+ Name = "Mexico",
+ NumericCode = "484"
+ },
+ new
+ {
+ Id = new Guid("a2da72dc-5866-ba2f-6283-6575af00ade5"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federated States of Micronesia",
+ Iso2 = "FM",
+ Iso3 = "FSM",
+ Name = "Micronesia",
+ NumericCode = "583"
+ },
+ new
+ {
+ Id = new Guid("daf6bc7a-92c4-ef47-3111-e13199b86b90"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Moldova",
+ Iso2 = "MD",
+ Iso3 = "MDA",
+ Name = "Moldova",
+ NumericCode = "498"
+ },
+ new
+ {
+ Id = new Guid("5cab34ca-8c74-0766-c7ca-4a826b44c5bd"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Principality of Monaco",
+ Iso2 = "MC",
+ Iso3 = "MCO",
+ Name = "Monaco",
+ NumericCode = "492"
+ },
+ new
+ {
+ Id = new Guid("c522b3d3-74cc-846f-0394-737dff4d2b1a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Mongolia",
+ Iso2 = "MN",
+ Iso3 = "MNG",
+ Name = "Mongolia",
+ NumericCode = "496"
+ },
+ new
+ {
+ Id = new Guid("86db2170-be87-fd1d-bf57-05ff61ae83a7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Montenegro",
+ Iso2 = "ME",
+ Iso3 = "MNE",
+ Name = "Montenegro",
+ NumericCode = "499"
+ },
+ new
+ {
+ Id = new Guid("50e5954d-7cb4-2201-b96c-f2a846ab3ae3"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Montserrat",
+ Iso2 = "MS",
+ Iso3 = "MSR",
+ Name = "Montserrat",
+ NumericCode = "500"
+ },
+ new
+ {
+ Id = new Guid("915805f0-9ff0-48ff-39b3-44a4af5e0482"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Morocco",
+ Iso2 = "MA",
+ Iso3 = "MAR",
+ Name = "Morocco",
+ NumericCode = "504"
+ },
+ new
+ {
+ Id = new Guid("10b58d9b-42ef-edb8-54a3-712636fda55a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Mozambique",
+ Iso2 = "MZ",
+ Iso3 = "MOZ",
+ Name = "Mozambique",
+ NumericCode = "508"
+ },
+ new
+ {
+ Id = new Guid("015a9f83-6e57-bc1e-8227-24a4e5248582"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of the Union of Myanmar",
+ Iso2 = "MM",
+ Iso3 = "MMR",
+ Name = "Myanmar",
+ NumericCode = "104"
+ },
+ new
+ {
+ Id = new Guid("0c0fef20-0e8d-98ea-7724-12cea9b3b926"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Namibia",
+ Iso2 = "NA",
+ Iso3 = "NAM",
+ Name = "Namibia",
+ NumericCode = "516"
+ },
+ new
+ {
+ Id = new Guid("e3bacefb-d79b-1569-a91c-43d7e4f6f230"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Nauru",
+ Iso2 = "NR",
+ Iso3 = "NRU",
+ Name = "Nauru",
+ NumericCode = "520"
+ },
+ new
+ {
+ Id = new Guid("e81c5db3-401a-e047-001e-045f39bef8ef"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Nepal",
+ Iso2 = "NP",
+ Iso3 = "NPL",
+ Name = "Nepal",
+ NumericCode = "524"
+ },
+ new
+ {
+ Id = new Guid("cfff3443-1378-9c7d-9d58-66146d7f29a6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of the Netherlands",
+ Iso2 = "NL",
+ Iso3 = "NLD",
+ Name = "Netherlands",
+ NumericCode = "528"
+ },
+ new
+ {
+ Id = new Guid("4b0729b6-f698-5730-767c-88e2d36691bb"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "New Caledonia",
+ Iso2 = "NC",
+ Iso3 = "NCL",
+ Name = "New Caledonia",
+ NumericCode = "540"
+ },
+ new
+ {
+ Id = new Guid("360e3c61-aaac-fa2f-d731-fc0824c05107"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "New Zealand",
+ Iso2 = "NZ",
+ Iso3 = "NZL",
+ Name = "New Zealand",
+ NumericCode = "554"
+ },
+ new
+ {
+ Id = new Guid("cd0e8275-3def-1de4-8858-61aab36851c4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Nicaragua",
+ Iso2 = "NI",
+ Iso3 = "NIC",
+ Name = "Nicaragua",
+ NumericCode = "558"
+ },
+ new
+ {
+ Id = new Guid("97cd39d5-1aca-8f10-9f5e-3f611d7606d8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Niger",
+ Iso2 = "NE",
+ Iso3 = "NER",
+ Name = "Niger",
+ NumericCode = "562"
+ },
+ new
+ {
+ Id = new Guid("2e1bd9d8-df06-d773-0eb9-98e274b63b43"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federal Republic of Nigeria",
+ Iso2 = "NG",
+ Iso3 = "NGA",
+ Name = "Nigeria",
+ NumericCode = "566"
+ },
+ new
+ {
+ Id = new Guid("3eea06f4-c085-f619-6d52-b76a5f6fd2b6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Niue",
+ Iso2 = "NU",
+ Iso3 = "NIU",
+ Name = "Niue",
+ NumericCode = "570"
+ },
+ new
+ {
+ Id = new Guid("47804b6a-e705-b925-f4fd-4adf6500180b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Norfolk Island",
+ Iso2 = "NF",
+ Iso3 = "NFK",
+ Name = "Norfolk Island",
+ NumericCode = "574"
+ },
+ new
+ {
+ Id = new Guid("aa0f69b2-93aa-ec51-b43b-60145db79e38"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of North Macedonia",
+ Iso2 = "MK",
+ Iso3 = "MKD",
+ Name = "North Macedonia",
+ NumericCode = "807"
+ },
+ new
+ {
+ Id = new Guid("6ac64a20-5688-ccd0-4eca-88d8a2560079"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Commonwealth of the Northern Mariana Islands",
+ Iso2 = "MP",
+ Iso3 = "MNP",
+ Name = "Northern Mariana Islands",
+ NumericCode = "580"
+ },
+ new
+ {
+ Id = new Guid("914d7923-3ac5-75e8-c8e2-47d72561e35d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Norway",
+ Iso2 = "NO",
+ Iso3 = "NOR",
+ Name = "Norway",
+ NumericCode = "578"
+ },
+ new
+ {
+ Id = new Guid("6c366974-3672-3a2c-2345-0fda33942304"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Sultanate of Oman",
+ Iso2 = "OM",
+ Iso3 = "OMN",
+ Name = "Oman",
+ NumericCode = "512"
+ },
+ new
+ {
+ Id = new Guid("cc7fabfc-4c2b-d9ff-bb45-003bfc2e468a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Islamic Republic of Pakistan",
+ Iso2 = "PK",
+ Iso3 = "PAK",
+ Name = "Pakistan",
+ NumericCode = "586"
+ },
+ new
+ {
+ Id = new Guid("057884bc-3c2e-dea9-6522-b003c9297f7a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Palau",
+ Iso2 = "PW",
+ Iso3 = "PLW",
+ Name = "Palau",
+ NumericCode = "585"
+ },
+ new
+ {
+ Id = new Guid("d6d31cdd-280a-56bc-24a4-a414028d2b67"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Palestine",
+ Iso2 = "PS",
+ Iso3 = "PSE",
+ Name = "Palestine",
+ NumericCode = "275"
+ },
+ new
+ {
+ Id = new Guid("7bf4a786-3733-c670-e85f-03ee3caa6ef9"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Panama",
+ Iso2 = "PA",
+ Iso3 = "PAN",
+ Name = "Panama",
+ NumericCode = "591"
+ },
+ new
+ {
+ Id = new Guid("c926f091-fe96-35b3-56b5-d418d17e0159"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Independent State of Papua New Guinea",
+ Iso2 = "PG",
+ Iso3 = "PNG",
+ Name = "Papua New Guinea",
+ NumericCode = "598"
+ },
+ new
+ {
+ Id = new Guid("db6ce903-ab43-3793-960c-659529bae6df"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Paraguay",
+ Iso2 = "PY",
+ Iso3 = "PRY",
+ Name = "Paraguay",
+ NumericCode = "600"
+ },
+ new
+ {
+ Id = new Guid("75634729-8e4a-4cfd-739d-9f679bfca3ab"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Peru",
+ Iso2 = "PE",
+ Iso3 = "PER",
+ Name = "Peru",
+ NumericCode = "604"
+ },
+ new
+ {
+ Id = new Guid("c93bccaf-1835-3c02-e2ee-c113ced19e43"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of the Philippines",
+ Iso2 = "PH",
+ Iso3 = "PHL",
+ Name = "Philippines",
+ NumericCode = "608"
+ },
+ new
+ {
+ Id = new Guid("a5d0c9af-2022-2b43-9332-eb6a2ce4305d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Pitcairn Islands",
+ Iso2 = "PN",
+ Iso3 = "PCN",
+ Name = "Pitcairn Islands",
+ NumericCode = "612"
+ },
+ new
+ {
+ Id = new Guid("de503629-2607-b948-e279-0509d8109d0f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Poland",
+ Iso2 = "PL",
+ Iso3 = "POL",
+ Name = "Poland",
+ NumericCode = "616"
+ },
+ new
+ {
+ Id = new Guid("2a039b16-2adf-0fb8-3bdf-fbdf14358d9d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Portuguese Republic",
+ Iso2 = "PT",
+ Iso3 = "PRT",
+ Name = "Portugal",
+ NumericCode = "620"
+ },
+ new
+ {
+ Id = new Guid("cd2c97c3-5473-0719-3803-fcacedfe2ea2"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Commonwealth of Puerto Rico",
+ Iso2 = "PR",
+ Iso3 = "PRI",
+ Name = "Puerto Rico",
+ NumericCode = "630"
+ },
+ new
+ {
+ Id = new Guid("067c9448-9ad0-2c21-a1dc-fbdf5a63d18d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "State of Qatar",
+ Iso2 = "QA",
+ Iso3 = "QAT",
+ Name = "Qatar",
+ NumericCode = "634"
+ },
+ new
+ {
+ Id = new Guid("881b4bb8-b6da-c73e-55c0-c9f31c02aaef"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Réunion",
+ Iso2 = "RE",
+ Iso3 = "REU",
+ Name = "Réunion",
+ NumericCode = "638"
+ },
+ new
+ {
+ Id = new Guid("51aa4900-30a6-91b7-2728-071542a064ff"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Romania",
+ Iso2 = "RO",
+ Iso3 = "ROU",
+ Name = "Romania",
+ NumericCode = "642"
+ },
+ new
+ {
+ Id = new Guid("58337ef3-3d24-43e9-a440-832306e7fc07"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Russian Federation",
+ Iso2 = "RU",
+ Iso3 = "RUS",
+ Name = "Russian Federation",
+ NumericCode = "643"
+ },
+ new
+ {
+ Id = new Guid("f5b15ea6-133d-c2c9-7ef9-b0916ea96edb"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Rwanda",
+ Iso2 = "RW",
+ Iso3 = "RWA",
+ Name = "Rwanda",
+ NumericCode = "646"
+ },
+ new
+ {
+ Id = new Guid("77f6f69b-ec41-8818-9395-8d39bf09e653"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Barthélemy",
+ Iso2 = "BL",
+ Iso3 = "BLM",
+ Name = "Saint Barthélemy",
+ NumericCode = "652"
+ },
+ new
+ {
+ Id = new Guid("6a76d068-49e1-da80-ddb4-9ef3d11191e6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Helena, Ascension and Tristan da Cunha",
+ Iso2 = "SH",
+ Iso3 = "SHN",
+ Name = "Saint Helena, Ascension and Tristan da Cunha",
+ NumericCode = "654"
+ },
+ new
+ {
+ Id = new Guid("fa633273-9866-840d-9739-c6c957901e46"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federation of Saint Kitts and Nevis",
+ Iso2 = "KN",
+ Iso3 = "KNA",
+ Name = "Saint Kitts and Nevis",
+ NumericCode = "659"
+ },
+ new
+ {
+ Id = new Guid("220e980a-7363-0150-c250-89e83b967fb4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Lucia",
+ Iso2 = "LC",
+ Iso3 = "LCA",
+ Name = "Saint Lucia",
+ NumericCode = "662"
+ },
+ new
+ {
+ Id = new Guid("899c2a9f-f35d-5a49-a6cd-f92531bb2266"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Martin (French part)",
+ Iso2 = "MF",
+ Iso3 = "MAF",
+ Name = "Saint Martin",
+ NumericCode = "663"
+ },
+ new
+ {
+ Id = new Guid("5476986b-11a4-8463-9bd7-0f7354ec7a20"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Pierre and Miquelon",
+ Iso2 = "PM",
+ Iso3 = "SPM",
+ Name = "Saint Pierre and Miquelon",
+ NumericCode = "666"
+ },
+ new
+ {
+ Id = new Guid("2f49855b-ff93-c399-d72a-121f2bf28bc9"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Saint Vincent and the Grenadines",
+ Iso2 = "VC",
+ Iso3 = "VCT",
+ Name = "Saint Vincent and the Grenadines",
+ NumericCode = "670"
+ },
+ new
+ {
+ Id = new Guid("a7c4c9db-8fe4-7d43-e830-1a70954970c3"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Independent State of Samoa",
+ Iso2 = "WS",
+ Iso3 = "WSM",
+ Name = "Samoa",
+ NumericCode = "882"
+ },
+ new
+ {
+ Id = new Guid("0a25f96f-5173-2fff-a2f8-c6872393edf6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of San Marino",
+ Iso2 = "SM",
+ Iso3 = "SMR",
+ Name = "San Marino",
+ NumericCode = "674"
+ },
+ new
+ {
+ Id = new Guid("766c1ebb-78c1-bada-37fb-c45d1bd4baff"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Democratic Republic of Sao Tome and Principe",
+ Iso2 = "ST",
+ Iso3 = "STP",
+ Name = "Sao Tome and Principe",
+ NumericCode = "678"
+ },
+ new
+ {
+ Id = new Guid("a8f30b36-4a25-3fb9-c69e-84ce6640d785"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Saudi Arabia",
+ Iso2 = "SA",
+ Iso3 = "SAU",
+ Name = "Saudi Arabia",
+ NumericCode = "682"
+ },
+ new
+ {
+ Id = new Guid("3175ac19-c801-0b87-8e66-7480a40dcf1e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Senegal",
+ Iso2 = "SN",
+ Iso3 = "SEN",
+ Name = "Senegal",
+ NumericCode = "686"
+ },
+ new
+ {
+ Id = new Guid("971c7e66-c6e3-71f4-580a-5caf2852f9f4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Serbia",
+ Iso2 = "RS",
+ Iso3 = "SRB",
+ Name = "Serbia",
+ NumericCode = "688"
+ },
+ new
+ {
+ Id = new Guid("2167da32-4f80-d31d-226c-0551970304eb"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Seychelles",
+ Iso2 = "SC",
+ Iso3 = "SYC",
+ Name = "Seychelles",
+ NumericCode = "690"
+ },
+ new
+ {
+ Id = new Guid("b0f4bdfa-17dd-9714-4fe8-3c3b1f010ffa"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Sierra Leone",
+ Iso2 = "SL",
+ Iso3 = "SLE",
+ Name = "Sierra Leone",
+ NumericCode = "694"
+ },
+ new
+ {
+ Id = new Guid("3ce3d958-7341-bd79-f294-f2e6907c186c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Singapore",
+ Iso2 = "SG",
+ Iso3 = "SGP",
+ Name = "Singapore",
+ NumericCode = "702"
+ },
+ new
+ {
+ Id = new Guid("141e589a-7046-a265-d2f6-b2f85e6eeadd"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Sint Maarten (Dutch part)",
+ Iso2 = "SX",
+ Iso3 = "SXM",
+ Name = "Sint Maarten (Dutch part)",
+ NumericCode = "534"
+ },
+ new
+ {
+ Id = new Guid("3252e51a-5bc1-f065-7101-5b34ba493dc4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Slovakia (Slovak Republic)",
+ Iso2 = "SK",
+ Iso3 = "SVK",
+ Name = "Slovakia (Slovak Republic)",
+ NumericCode = "703"
+ },
+ new
+ {
+ Id = new Guid("357c121b-e28d-1765-e699-cc4ec5ff86fc"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Slovenia",
+ Iso2 = "SI",
+ Iso3 = "SVN",
+ Name = "Slovenia",
+ NumericCode = "705"
+ },
+ new
+ {
+ Id = new Guid("7453c201-ecf1-d3dd-0409-e94d0733173b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Solomon Islands",
+ Iso2 = "SB",
+ Iso3 = "SLB",
+ Name = "Solomon Islands",
+ NumericCode = "090"
+ },
+ new
+ {
+ Id = new Guid("802c05db-3866-545d-dc1a-a02c83ea6cf6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Federal Republic of Somalia",
+ Iso2 = "SO",
+ Iso3 = "SOM",
+ Name = "Somalia",
+ NumericCode = "706"
+ },
+ new
+ {
+ Id = new Guid("ebf38b9a-6fbe-6e82-3977-2c4763bea072"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of South Africa",
+ Iso2 = "ZA",
+ Iso3 = "ZAF",
+ Name = "South Africa",
+ NumericCode = "710"
+ },
+ new
+ {
+ Id = new Guid("6af4d03e-edd0-d98a-bc7e-abc7df87d3dd"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "South Georgia and the South Sandwich Islands",
+ Iso2 = "GS",
+ Iso3 = "SGS",
+ Name = "South Georgia and the South Sandwich Islands",
+ NumericCode = "239"
+ },
+ new
+ {
+ Id = new Guid("6aac6f0e-d13a-a629-4c2b-9d6eaf6680e4"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of South Sudan",
+ Iso2 = "SS",
+ Iso3 = "SSD",
+ Name = "South Sudan",
+ NumericCode = "728"
+ },
+ new
+ {
+ Id = new Guid("414a34ce-2781-8f96-2bd0-7ada86c8cf38"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Spain",
+ Iso2 = "ES",
+ Iso3 = "ESP",
+ Name = "Spain",
+ NumericCode = "724"
+ },
+ new
+ {
+ Id = new Guid("687320c8-e841-c911-6d30-b14eb998feb6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Democratic Socialist Republic of Sri Lanka",
+ Iso2 = "LK",
+ Iso3 = "LKA",
+ Name = "Sri Lanka",
+ NumericCode = "144"
+ },
+ new
+ {
+ Id = new Guid("f0965449-6b15-6c1a-f5cb-ebd2d575c02c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Sudan",
+ Iso2 = "SD",
+ Iso3 = "SDN",
+ Name = "Sudan",
+ NumericCode = "729"
+ },
+ new
+ {
+ Id = new Guid("61ba1844-4d33-84b4-dbac-70718aa91d59"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Suriname",
+ Iso2 = "SR",
+ Iso3 = "SUR",
+ Name = "Suriname",
+ NumericCode = "740"
+ },
+ new
+ {
+ Id = new Guid("d525de3a-aecc-07de-0426-68f32af2968e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Svalbard & Jan Mayen Islands",
+ Iso2 = "SJ",
+ Iso3 = "SJM",
+ Name = "Svalbard & Jan Mayen Islands",
+ NumericCode = "744"
+ },
+ new
+ {
+ Id = new Guid("a32a9fc2-677f-43e0-97aa-9e83943d785c"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Eswatini",
+ Iso2 = "SZ",
+ Iso3 = "SWZ",
+ Name = "Eswatini",
+ NumericCode = "748"
+ },
+ new
+ {
+ Id = new Guid("0ab731f0-5326-44be-af3a-20aa33ad0f35"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Sweden",
+ Iso2 = "SE",
+ Iso3 = "SWE",
+ Name = "Sweden",
+ NumericCode = "752"
+ },
+ new
+ {
+ Id = new Guid("37c89068-a8e9-87e8-d651-f86fac63673a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Swiss Confederation",
+ Iso2 = "CH",
+ Iso3 = "CHE",
+ Name = "Switzerland",
+ NumericCode = "756"
+ },
+ new
+ {
+ Id = new Guid("c1a923f6-b9ec-78f7-cc1c-7025e3d69d7d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Syrian Arab Republic",
+ Iso2 = "SY",
+ Iso3 = "SYR",
+ Name = "Syrian Arab Republic",
+ NumericCode = "760"
+ },
+ new
+ {
+ Id = new Guid("875060ca-73f6-af3b-d844-1b1416ce4583"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Taiwan, Province of China",
+ Iso2 = "TW",
+ Iso3 = "TWN",
+ Name = "Taiwan",
+ NumericCode = "158"
+ },
+ new
+ {
+ Id = new Guid("2a848549-9777-cf48-a0f2-b32c6f942096"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Tajikistan",
+ Iso2 = "TJ",
+ Iso3 = "TJK",
+ Name = "Tajikistan",
+ NumericCode = "762"
+ },
+ new
+ {
+ Id = new Guid("4736c1ad-54bd-c8e8-d9ee-492a88268de8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United Republic of Tanzania",
+ Iso2 = "TZ",
+ Iso3 = "TZA",
+ Name = "Tanzania",
+ NumericCode = "834"
+ },
+ new
+ {
+ Id = new Guid("84d58b3d-d131-1506-0792-1b3228b6f71f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Thailand",
+ Iso2 = "TH",
+ Iso3 = "THA",
+ Name = "Thailand",
+ NumericCode = "764"
+ },
+ new
+ {
+ Id = new Guid("fb9a713c-2de1-882a-64b7-0e8fef5d2f7e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Democratic Republic of Timor-Leste",
+ Iso2 = "TL",
+ Iso3 = "TLS",
+ Name = "Timor-Leste",
+ NumericCode = "626"
+ },
+ new
+ {
+ Id = new Guid("9dacf00b-7d0a-d744-cc60-e5fa66371e9d"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Togolese Republic",
+ Iso2 = "TG",
+ Iso3 = "TGO",
+ Name = "Togo",
+ NumericCode = "768"
+ },
+ new
+ {
+ Id = new Guid("11765ad0-30f2-bab8-b616-20f88b28b21e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Tokelau",
+ Iso2 = "TK",
+ Iso3 = "TKL",
+ Name = "Tokelau",
+ NumericCode = "772"
+ },
+ new
+ {
+ Id = new Guid("9e7dbdc3-2c8b-e8ae-082b-e02695f8268e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Kingdom of Tonga",
+ Iso2 = "TO",
+ Iso3 = "TON",
+ Name = "Tonga",
+ NumericCode = "776"
+ },
+ new
+ {
+ Id = new Guid("95467997-f989-f456-34b7-0b578302dcba"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Trinidad and Tobago",
+ Iso2 = "TT",
+ Iso3 = "TTO",
+ Name = "Trinidad and Tobago",
+ NumericCode = "780"
+ },
+ new
+ {
+ Id = new Guid("06f8ad57-7133-9a5e-5a83-53052012b014"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Tunisian Republic",
+ Iso2 = "TN",
+ Iso3 = "TUN",
+ Name = "Tunisia",
+ NumericCode = "788"
+ },
+ new
+ {
+ Id = new Guid("f39cca22-449e-9866-3a65-465a5510483e"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Türkiye",
+ Iso2 = "TR",
+ Iso3 = "TUR",
+ Name = "Türkiye",
+ NumericCode = "792"
+ },
+ new
+ {
+ Id = new Guid("550ca5df-3995-617c-c39d-437beb400a42"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Turkmenistan",
+ Iso2 = "TM",
+ Iso3 = "TKM",
+ Name = "Turkmenistan",
+ NumericCode = "795"
+ },
+ new
+ {
+ Id = new Guid("0e0fefd5-9a05-fde5-bee9-ef56db7748a1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Turks and Caicos Islands",
+ Iso2 = "TC",
+ Iso3 = "TCA",
+ Name = "Turks and Caicos Islands",
+ NumericCode = "796"
+ },
+ new
+ {
+ Id = new Guid("e0d562ca-f573-3c2f-eb83-f72d4d70d4fc"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Tuvalu",
+ Iso2 = "TV",
+ Iso3 = "TUV",
+ Name = "Tuvalu",
+ NumericCode = "798"
+ },
+ new
+ {
+ Id = new Guid("3e2cccbe-1615-c707-a97b-421a799b2559"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Uganda",
+ Iso2 = "UG",
+ Iso3 = "UGA",
+ Name = "Uganda",
+ NumericCode = "800"
+ },
+ new
+ {
+ Id = new Guid("e087f51c-feba-19b6-5595-fcbdce170411"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Ukraine",
+ Iso2 = "UA",
+ Iso3 = "UKR",
+ Name = "Ukraine",
+ NumericCode = "804"
+ },
+ new
+ {
+ Id = new Guid("29201cbb-ca65-1924-75a9-0c4d4db43001"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United Arab Emirates",
+ Iso2 = "AE",
+ Iso3 = "ARE",
+ Name = "United Arab Emirates",
+ NumericCode = "784"
+ },
+ new
+ {
+ Id = new Guid("0b3b04b4-9782-79e3-bc55-9ab33b6ae9c7"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United Kingdom of Great Britain & Northern Ireland",
+ Iso2 = "GB",
+ Iso3 = "GBR",
+ Name = "United Kingdom of Great Britain and Northern Ireland",
+ NumericCode = "826"
+ },
+ new
+ {
+ Id = new Guid("cb2e209b-d4c6-6d5c-8901-d989a9188783"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United States of America",
+ Iso2 = "US",
+ Iso3 = "USA",
+ Name = "United States of America",
+ NumericCode = "840"
+ },
+ new
+ {
+ Id = new Guid("0868cdd3-7f50-5a25-88d6-98c45f9157e3"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United States Minor Outlying Islands",
+ Iso2 = "UM",
+ Iso3 = "UMI",
+ Name = "United States Minor Outlying Islands",
+ NumericCode = "581"
+ },
+ new
+ {
+ Id = new Guid("e1947bdc-ff2c-d2c1-3c55-f1f9bf778578"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "United States Virgin Islands",
+ Iso2 = "VI",
+ Iso3 = "VIR",
+ Name = "United States Virgin Islands",
+ NumericCode = "850"
+ },
+ new
+ {
+ Id = new Guid("8e787470-aae6-575a-fe0b-d65fc78b648a"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Eastern Republic of Uruguay",
+ Iso2 = "UY",
+ Iso3 = "URY",
+ Name = "Uruguay",
+ NumericCode = "858"
+ },
+ new
+ {
+ Id = new Guid("357369e3-85a8-86f7-91c7-349772ae7744"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Uzbekistan",
+ Iso2 = "UZ",
+ Iso3 = "UZB",
+ Name = "Uzbekistan",
+ NumericCode = "860"
+ },
+ new
+ {
+ Id = new Guid("c98174ef-8198-54ba-2ff1-b93f3c646db8"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Vanuatu",
+ Iso2 = "VU",
+ Iso3 = "VUT",
+ Name = "Vanuatu",
+ NumericCode = "548"
+ },
+ new
+ {
+ Id = new Guid("52d9992c-19bd-82b4-9188-11dabcac6171"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Bolivarian Republic of Venezuela",
+ Iso2 = "VE",
+ Iso3 = "VEN",
+ Name = "Venezuela",
+ NumericCode = "862"
+ },
+ new
+ {
+ Id = new Guid("d7236157-d5a7-6b7a-3bc1-69802313fa30"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Socialist Republic of Vietnam",
+ Iso2 = "VN",
+ Iso3 = "VNM",
+ Name = "Vietnam",
+ NumericCode = "704"
+ },
+ new
+ {
+ Id = new Guid("e186a953-7ab3-c009-501c-a754267b770b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Wallis and Futuna",
+ Iso2 = "WF",
+ Iso3 = "WLF",
+ Name = "Wallis and Futuna",
+ NumericCode = "876"
+ },
+ new
+ {
+ Id = new Guid("2f4cc994-53f1-1763-8220-5d89e063804f"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Western Sahara",
+ Iso2 = "EH",
+ Iso3 = "ESH",
+ Name = "Western Sahara",
+ NumericCode = "732"
+ },
+ new
+ {
+ Id = new Guid("8c4441fd-8cd4-ff1e-928e-e46f9ca12552"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Yemen",
+ Iso2 = "YE",
+ Iso3 = "YEM",
+ Name = "Yemen",
+ NumericCode = "887"
+ },
+ new
+ {
+ Id = new Guid("ab0b7e83-bf02-16e6-e5ae-46c4bd4c093b"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Zambia",
+ Iso2 = "ZM",
+ Iso3 = "ZMB",
+ Name = "Zambia",
+ NumericCode = "894"
+ },
+ new
+ {
+ Id = new Guid("6984f722-6963-d067-d4d4-9fd3ef2edbf6"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Zimbabwe",
+ Iso2 = "ZW",
+ Iso3 = "ZWE",
+ Name = "Zimbabwe",
+ NumericCode = "716"
+ },
+ new
+ {
+ Id = new Guid("4b07d158-c1d0-8ab0-a28e-a56d64f910e1"),
+ CreatedOn = new DateTime(2024, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc),
+ FullName = "Republic of Kosovo",
+ Iso2 = "XK",
+ Iso3 = "XKX",
+ Name = "Kosovo",
+ NumericCode = "926"
+ });
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.ElectionRoundAggregate.ElectionRound", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CitizenReportingEnabled")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("boolean")
+ .HasDefaultValue(false);
+
+ b.Property("CountryId")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("EnglishTitle")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LocationsVersion")
+ .HasColumnType("uuid");
+
+ b.Property("MonitoringNgoForCitizenReportingId")
+ .HasColumnType("uuid");
+
+ b.Property("PollingStationsVersion")
+ .HasColumnType("uuid");
+
+ b.Property("StartDate")
+ .HasColumnType("date");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CountryId");
+
+ b.HasIndex("MonitoringNgoForCitizenReportingId");
+
+ b.ToTable("ElectionRounds");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.ElectionRoundFormTemplateAggregate.ElectionRoundFormTemplate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FormTemplateId")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FormTemplateId");
+
+ b.HasIndex("ElectionRoundId", "FormTemplateId")
+ .IsUnique();
+
+ b.ToTable("ElectionRoundFormTemplates");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.ExportedDataAggregate.ExportedData", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Base64EncodedData")
+ .HasColumnType("text");
+
+ b.Property("CitizenReportsFilers")
+ .HasColumnType("jsonb");
+
+ b.Property("CompletedAt")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ExportStatus")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ExportedDataType")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("FileName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("FormSubmissionsFilters")
+ .HasColumnType("jsonb");
+
+ b.Property("IncidentReportsFilters")
+ .HasColumnType("jsonb");
+
+ b.Property("OwnerId")
+ .HasColumnType("uuid");
+
+ b.Property("QuickReportsFilters")
+ .HasColumnType("jsonb");
+
+ b.Property("StartedAt")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Id");
+
+ b.HasIndex("OwnerId");
+
+ b.ToTable("ExportedData", (string)null);
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.FeedbackAggregate.Feedback", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property>("Metadata")
+ .IsRequired()
+ .HasColumnType("hstore");
+
+ b.Property("ObserverId")
+ .HasColumnType("uuid");
+
+ b.Property("TimeSubmitted")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("UserFeedback")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("ObserverId");
+
+ b.ToTable("UserFeedback");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.FormAggregate.Form", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("CreatedBy")
+ .HasColumnType("uuid");
+
+ b.Property("CreatedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DefaultLanguage")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("character varying(64)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("DisplayOrder")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer")
+ .HasDefaultValue(0);
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FormType")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Icon")
+ .HasColumnType("text");
+
+ b.Property("Languages")
+ .IsRequired()
+ .HasColumnType("text[]");
+
+ b.Property("LanguagesTranslationStatus")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("LastModifiedBy")
+ .HasColumnType("uuid");
+
+ b.Property("LastModifiedOn")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("MonitoringNgoId")
+ .HasColumnType("uuid");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("NumberOfQuestions")
+ .HasColumnType("integer");
+
+ b.Property("Questions")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ElectionRoundId");
+
+ b.HasIndex("MonitoringNgoId");
+
+ b.ToTable("Forms");
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.FormSubmissionAggregate.FormSubmission", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Answers")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("ElectionRoundId")
+ .HasColumnType("uuid");
+
+ b.Property("FollowUpStatus")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("text")
+ .HasDefaultValue("NotApplicable");
+
+ b.Property("FormId")
+ .HasColumnType("uuid");
+
+ b.Property("IsCompleted")
+ .HasColumnType("boolean");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("MonitoringObserverId")
+ .HasColumnType("uuid");
+
+ b.Property("NumberOfFlaggedAnswers")
+ .HasColumnType("integer");
+
+ b.Property("NumberOfQuestionsAnswered")
+ .HasColumnType("integer");
+
+ b.Property("PollingStationId")
+ .HasColumnType("uuid");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FormId");
+
+ b.HasIndex("MonitoringObserverId");
+
+ b.HasIndex("PollingStationId");
+
+ b.HasIndex("ElectionRoundId", "PollingStationId", "MonitoringObserverId", "FormId")
+ .IsUnique();
+
+ b.ToTable("FormSubmissions", (string)null);
+ });
+
+ modelBuilder.Entity("Vote.Monitor.Domain.Entities.FormTemplateAggregate.FormTemplate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property