diff --git a/TransactionProcessor.Database/Entities/TransactionAdditionalRequestData.cs b/TransactionProcessor.Database/Entities/TransactionAdditionalRequestData.cs
index 3046e6eb..8e3215e7 100644
--- a/TransactionProcessor.Database/Entities/TransactionAdditionalRequestData.cs
+++ b/TransactionProcessor.Database/Entities/TransactionAdditionalRequestData.cs
@@ -8,8 +8,6 @@ namespace TransactionProcessor.Database.Entities
[Table("transactionadditionalrequestdata")]
public class TransactionAdditionalRequestData
{
- #region Properties
-
public String? Amount { get; set; }
@@ -18,6 +16,6 @@ public class TransactionAdditionalRequestData
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid TransactionId { get; set; }
- #endregion
+ public String? Metadata { get; set; }
}
}
\ No newline at end of file
diff --git a/TransactionProcessor.Database/Entities/TransactionAdditionalResponseData.cs b/TransactionProcessor.Database/Entities/TransactionAdditionalResponseData.cs
index abffa6be..5f2b2e88 100644
--- a/TransactionProcessor.Database/Entities/TransactionAdditionalResponseData.cs
+++ b/TransactionProcessor.Database/Entities/TransactionAdditionalResponseData.cs
@@ -8,13 +8,12 @@ namespace TransactionProcessor.Database.Entities
[Table("transactionadditionalresponsedata")]
public class TransactionAdditionalResponseData
{
- #region Properties
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Int32 TransactionReportingId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid TransactionId { get; set; }
- #endregion
+ public String? Metadata { get; set; }
}
}
\ No newline at end of file
diff --git a/TransactionProcessor.Database/Migrations/SqlServer/20260916163046_record_all_metadata.Designer.cs b/TransactionProcessor.Database/Migrations/SqlServer/20260916163046_record_all_metadata.Designer.cs
new file mode 100644
index 00000000..657c62ff
--- /dev/null
+++ b/TransactionProcessor.Database/Migrations/SqlServer/20260916163046_record_all_metadata.Designer.cs
@@ -0,0 +1,1710 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using TransactionProcessor.Database.Contexts;
+
+#nullable disable
+
+namespace TransactionProcessor.Database.Migrations.SqlServer
+{
+ [DbContext(typeof(EstateManagementContext))]
+ [Migration("20260916163046_record_all_metadata")]
+ partial class record_all_metadata
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "10.0.12")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Calendar", b =>
+ {
+ b.Property("Date")
+ .HasColumnType("datetime2");
+
+ b.Property("DayOfWeek")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DayOfWeekNumber")
+ .HasColumnType("int");
+
+ b.Property("DayOfWeekShort")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MonthNameLong")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MonthNameShort")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MonthNumber")
+ .HasColumnType("int");
+
+ b.Property("WeekNumber")
+ .HasColumnType("int");
+
+ b.Property("WeekNumberString")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.Property("YearWeekNumber")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Date");
+
+ b.ToTable("calendar");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Contract", b =>
+ {
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("OperatorId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ContractReportingId"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("EstateId", "OperatorId", "ContractId");
+
+ b.ToTable("contract");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.ContractProduct", b =>
+ {
+ b.Property("ContractProductReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ContractProductReportingId"));
+
+ b.Property("ContractId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractProductId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DisplayText")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProductName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProductType")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .HasColumnType("decimal(18,2)");
+
+ b.HasKey("ContractProductReportingId");
+
+ b.HasIndex("ContractProductId", "ContractId")
+ .IsUnique();
+
+ b.ToTable("contractproduct");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.ContractProductTransactionFee", b =>
+ {
+ b.Property("ContractProductTransactionFeeReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ContractProductTransactionFeeReportingId"));
+
+ b.Property("CalculationType")
+ .HasColumnType("int");
+
+ b.Property("ContractProductId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractProductTransactionFeeId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FeeType")
+ .HasColumnType("int");
+
+ b.Property("IsEnabled")
+ .HasColumnType("bit");
+
+ b.Property("Value")
+ .HasColumnType("decimal(18,4)");
+
+ b.HasKey("ContractProductTransactionFeeReportingId");
+
+ b.HasIndex("ContractProductTransactionFeeId", "ContractProductId")
+ .IsUnique();
+
+ b.ToTable("contractproducttransactionfee");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Estate", b =>
+ {
+ b.Property("EstateReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("EstateReportingId"));
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Reference")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("EstateReportingId");
+
+ b.HasIndex("EstateId")
+ .IsUnique();
+
+ b.ToTable("estate");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.EstateOperator", b =>
+ {
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("OperatorId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.HasKey("EstateId", "OperatorId");
+
+ b.ToTable("estateoperator");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.EstateSecurityUser", b =>
+ {
+ b.Property("SecurityUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EmailAddress")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("SecurityUserId", "EstateId");
+
+ b.ToTable("estatesecurityuser");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.File", b =>
+ {
+ b.Property("FileReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("FileReportingId"));
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileImportLogId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileLocation")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FileProfileId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileReceivedDate")
+ .HasColumnType("date");
+
+ b.Property("FileReceivedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("FileReportingId");
+
+ b.HasIndex("FileId")
+ .IsUnique();
+
+ b.ToTable("file");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FileFormatHandler", b =>
+ {
+ b.Property("FileFormatHandlerId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(450)");
+
+ b.HasKey("FileFormatHandlerId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("FileFormatHandlers");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FileImportLog", b =>
+ {
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileImportLogReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("FileImportLogReportingId"));
+
+ b.Property("FileImportLogId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ImportLogDate")
+ .HasColumnType("date");
+
+ b.Property("ImportLogDateTime")
+ .HasColumnType("datetime2");
+
+ b.HasKey("EstateId", "FileImportLogReportingId");
+
+ b.HasIndex("EstateId", "FileImportLogId")
+ .IsUnique();
+
+ b.ToTable("fileimportlog");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FileImportLogFile", b =>
+ {
+ b.Property("FileImportLogId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FilePath")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FileProfileId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileUploadedDate")
+ .HasColumnType("date");
+
+ b.Property("FileUploadedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("OriginalFileName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("FileImportLogId", "FileId");
+
+ b.ToTable("fileimportlogfile");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FileLine", b =>
+ {
+ b.Property("FileId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LineNumber")
+ .HasColumnType("int");
+
+ b.Property("FileLineData")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransactionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("FileId", "LineNumber");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("FileId", "LineNumber"));
+
+ b.ToTable("fileline");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FileProfileConfiguration", b =>
+ {
+ b.Property("FileProfileId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FileFormatHandlerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LineTerminator")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ListeningDirectory")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("OperatorId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RequestTypeId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("FileProfileId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("FileProfileConfigurations");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Float", b =>
+ {
+ b.Property("FloatId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedDate")
+ .HasColumnType("date");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("FloatId");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("FloatId"), false);
+
+ b.HasIndex("CreatedDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreatedDate"));
+
+ b.ToTable("Floats");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.FloatActivity", b =>
+ {
+ b.Property("EventId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActivityDate")
+ .HasColumnType("date");
+
+ b.Property("ActivityDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Amount")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("CostPrice")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("CreditOrDebit")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FloatId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("EventId");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("EventId"), false);
+
+ b.HasIndex("ActivityDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("ActivityDate"));
+
+ b.ToTable("FloatActivity");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Merchant", b =>
+ {
+ b.Property("MerchantReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("MerchantReportingId"));
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LastSaleDate")
+ .HasColumnType("date");
+
+ b.Property("LastSaleDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("LastStatementGenerated")
+ .HasColumnType("datetime2");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Reference")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SettlementSchedule")
+ .HasColumnType("int");
+
+ b.HasKey("MerchantReportingId");
+
+ b.HasIndex("EstateId", "MerchantId")
+ .IsUnique();
+
+ b.ToTable("merchant");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantAddress", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AddressId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AddressLine1")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AddressLine2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AddressLine3")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AddressLine4")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Country")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("PostalCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Region")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Town")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantId", "AddressId");
+
+ b.ToTable("merchantaddress");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantContact", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContactId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EmailAddress")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantId", "ContactId");
+
+ b.ToTable("merchantcontact");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantContract", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.HasKey("MerchantId", "ContractId");
+
+ b.ToTable("MerchantContracts");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantDevice", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DeviceId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("DeviceIdentifier")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsEnabled")
+ .HasColumnType("bit");
+
+ b.HasKey("MerchantId", "DeviceId");
+
+ b.ToTable("merchantdevice");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantOpeningHours", b =>
+ {
+ b.Property("MerchantId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FridayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FridayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MondayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MondayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SaturdayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SaturdayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SundayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SundayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ThursdayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ThursdayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TuesdayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TuesdayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WednesdayClosing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WednesdayOpening")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantId");
+
+ b.ToTable("merchantopeninghours");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantOperator", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("OperatorId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("MerchantNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TerminalNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantId", "OperatorId");
+
+ b.ToTable("merchantoperator");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantSchedule", b =>
+ {
+ b.Property("MerchantScheduleId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.HasKey("MerchantScheduleId");
+
+ b.HasIndex("MerchantId", "Year")
+ .IsUnique();
+
+ b.ToTable("merchantschedule");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantScheduleMonth", b =>
+ {
+ b.Property("MerchantScheduleId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Month")
+ .HasColumnType("int");
+
+ b.Property("ClosedDays")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantScheduleId", "Month");
+
+ b.ToTable("merchantschedulemonth");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantSecurityUser", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SecurityUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EmailAddress")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("MerchantId", "SecurityUserId");
+
+ b.ToTable("merchantsecurityuser");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.MerchantSettlementFee", b =>
+ {
+ b.Property("SettlementId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("TransactionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContractProductTransactionFeeId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CalculatedValue")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("FeeCalculatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("FeeValue")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("IsSettled")
+ .HasColumnType("bit");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("SettlementId", "TransactionId", "ContractProductTransactionFeeId");
+
+ b.ToTable("merchantsettlementfee");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Operator", b =>
+ {
+ b.Property("OperatorReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("OperatorReportingId"));
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OperatorId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RequireCustomMerchantNumber")
+ .HasColumnType("bit");
+
+ b.Property("RequireCustomTerminalNumber")
+ .HasColumnType("bit");
+
+ b.HasKey("OperatorReportingId");
+
+ b.HasIndex("OperatorId")
+ .IsUnique();
+
+ b.ToTable("operator");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Reconciliation", b =>
+ {
+ b.Property("TransactionReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("TransactionReportingId"));
+
+ b.Property("DeviceIdentifier")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsAuthorised")
+ .HasColumnType("bit");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ResponseCode")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ResponseMessage")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransactionCount")
+ .HasColumnType("int");
+
+ b.Property("TransactionDate")
+ .HasColumnType("date");
+
+ b.Property("TransactionDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("TransactionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("TransactionTime")
+ .HasColumnType("time");
+
+ b.Property("TransactionValue")
+ .HasColumnType("decimal(18,2)");
+
+ b.HasKey("TransactionReportingId");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("TransactionReportingId"), false);
+
+ b.HasIndex("TransactionDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("TransactionDate"));
+
+ b.HasIndex("TransactionId", "MerchantId")
+ .IsUnique();
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("TransactionId", "MerchantId"), false);
+
+ b.ToTable("reconciliation");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.RequestType", b =>
+ {
+ b.Property("RequestTypeId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(450)");
+
+ b.HasKey("RequestTypeId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("RequestTypes");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.ResponseCodes", b =>
+ {
+ b.Property("ResponseCode")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ResponseCode"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("ResponseCode");
+
+ b.ToTable("responsecodes");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Settlement", b =>
+ {
+ b.Property("SettlementReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("SettlementReportingId"));
+
+ b.Property("EstateId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ProcessingStarted")
+ .HasColumnType("bit");
+
+ b.Property("ProcessingStartedDateTIme")
+ .HasColumnType("datetime2");
+
+ b.Property("SettlementDate")
+ .HasColumnType("date");
+
+ b.Property("SettlementId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("SettlementReportingId");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("SettlementReportingId"), false);
+
+ b.HasIndex("SettlementDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("SettlementDate"));
+
+ b.HasIndex("EstateId", "SettlementId")
+ .IsUnique();
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("EstateId", "SettlementId"), false);
+
+ b.ToTable("settlement");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.StatementHeader", b =>
+ {
+ b.Property("MerchantId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("StatementId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("StatementCreatedDate")
+ .HasColumnType("date");
+
+ b.Property("StatementCreatedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("StatementGeneratedDate")
+ .HasColumnType("date");
+
+ b.Property("StatementGeneratedDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("StatementReportingId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("StatementReportingId"));
+
+ b.HasKey("MerchantId", "StatementId");
+
+ SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("MerchantId", "StatementId"), false);
+
+ b.HasIndex("StatementGeneratedDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("StatementGeneratedDate"));
+
+ b.ToTable("statementheader");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.StatementLine", b =>
+ {
+ b.Property("StatementId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("TransactionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ActivityDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ActivityType")
+ .HasColumnType("int");
+
+ b.Property("ActivityDate")
+ .HasColumnType("date");
+
+ b.Property("ActivityDescription")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("InAmount")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("OutAmount")
+ .HasColumnType("decimal(18,2)");
+
+ b.HasKey("StatementId", "TransactionId", "ActivityDateTime", "ActivityType");
+
+ b.ToTable("statementline");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Summary.SettlementSummary", b =>
+ {
+ b.Property("ContractProductReportingId")
+ .HasColumnType("int");
+
+ b.Property("FeeCount")
+ .HasColumnType("int");
+
+ b.Property("FeeValue")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("IsSettled")
+ .HasColumnType("bit");
+
+ b.Property("MerchantReportingId")
+ .HasColumnType("int");
+
+ b.Property("OperatorReportingId")
+ .HasColumnType("int");
+
+ b.Property("SalesCount")
+ .HasColumnType("int");
+
+ b.Property("SalesValue")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("SettlementDate")
+ .HasColumnType("date");
+
+ b.HasIndex("SettlementDate");
+
+ SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("SettlementDate"));
+
+ b.HasIndex("SettlementDate", "MerchantReportingId", "OperatorReportingId", "ContractProductReportingId", "IsCompleted", "IsSettled")
+ .IsUnique();
+
+ b.ToTable("SettlementSummary");
+ });
+
+ modelBuilder.Entity("TransactionProcessor.Database.Entities.Summary.TodayTransaction", b =>
+ {
+ b.Property("AuthorisationCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContractProductReportingId")
+ .HasColumnType("int");
+
+ b.Property("ContractReportingId")
+ .HasColumnType("int");
+
+ b.Property("DeviceIdentifier")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Hour")
+ .HasColumnType("int");
+
+ b.Property("IsAuthorised")
+ .HasColumnType("bit");
+
+ b.Property("IsCompleted")
+ .HasColumnType("bit");
+
+ b.Property("MerchantReportingId")
+ .HasColumnType("int");
+
+ b.Property("OperatorReportingId")
+ .HasColumnType("int");
+
+ b.Property("ResponseCode")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ResponseMessage")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransactionAmount")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("TransactionDate")
+ .HasColumnType("date");
+
+ b.Property("TransactionDateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("TransactionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("TransactionNumber")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransactionReference")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TransactionReportingId")
+ .HasColumnType("int");
+
+ b.Property