//
using System;
using CredentialManager.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace CredentialManager.Migrations
{
[DbContext(typeof(CredentialDbContext))]
partial class CredentialDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.0");
modelBuilder.Entity("CredentialManager.Models.CredentialEntity", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AdditionalParameters")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("CommandTimeout")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(30);
b.Property("ConnectionString")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("CreatedAt")
.HasColumnType("TEXT");
b.Property("CreatedBy")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("DatabaseName")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("DatabaseType")
.HasMaxLength(50)
.HasColumnType("TEXT");
b.Property("EncryptedApiKey")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("EncryptedAuthToken")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("EncryptedPassword")
.HasColumnType("TEXT");
b.Property("Headers")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("Host")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("IgnoreSslErrors")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(false);
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("Port")
.HasColumnType("INTEGER");
b.Property("RestServiceType")
.HasMaxLength(50)
.HasColumnType("TEXT");
b.Property("TimeoutSeconds")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(100);
b.Property("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("TEXT");
b.Property("UpdatedAt")
.HasColumnType("TEXT");
b.Property("Username")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("DatabaseType");
b.HasIndex("IsActive");
b.HasIndex("Name")
.IsUnique();
b.HasIndex("Type");
b.ToTable("Credentials", (string)null);
});
modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAt")
.ValueGeneratedOnAdd()
.HasColumnType("TEXT")
.HasDefaultValueSql("CURRENT_TIMESTAMP");
b.Property("CreatedBy")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("DeletionAction")
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("DeletionMarkField")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("DeletionMarkValue")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("Description")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("DestinationCredentialId")
.HasColumnType("INTEGER");
b.Property("DestinationEndpoint")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("DestinationSchema")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("DestinationTable")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("DestinationType")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("FieldMappingJson")
.HasMaxLength(4000)
.HasColumnType("TEXT");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property("LastUsedAt")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("SourceCredentialId")
.HasColumnType("INTEGER");
b.Property("SourceCustomQuery")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("SourceDatabaseName")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("SourceFilePath")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("SourceKeyField")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("SourceSchema")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("SourceTable")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("SourceType")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("SyncDeletions")
.HasColumnType("INTEGER");
b.Property("UseRecordAssociations")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CreatedAt");
b.HasIndex("DestinationCredentialId");
b.HasIndex("DestinationType");
b.HasIndex("IsActive");
b.HasIndex("LastUsedAt");
b.HasIndex("Name")
.IsUnique();
b.HasIndex("SourceCredentialId");
b.HasIndex("SourceType");
b.ToTable("DataCouplerProfiles", (string)null);
});
modelBuilder.Entity("CredentialManager.Models.KeyAssociation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AdditionalInfo")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("CreatedAt")
.HasColumnType("TEXT");
b.Property("Data_Hash")
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("DeletedAt")
.HasColumnType("TEXT");
b.Property("DeletionSynced")
.HasColumnType("INTEGER");
b.Property("DeletionSyncedAt")
.HasColumnType("TEXT");
b.Property("DestinationEntity")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("DestinationId")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("DestinationKeyField")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property("IsSourceDeleted")
.HasColumnType("INTEGER");
b.Property("KeyValue")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("LastVerifiedAt")
.HasColumnType("TEXT");
b.Property("MappedDestinationField")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("RestCredentialName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("SourceKeyField")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("SourcesInfo")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("UpdatedAt")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("CreatedAt");
b.HasIndex("DestinationEntity");
b.HasIndex("IsActive");
b.HasIndex("KeyValue")
.HasDatabaseName("IX_KeyAssociations_KeyValue");
b.HasIndex("LastVerifiedAt");
b.HasIndex("RestCredentialName");
b.HasIndex("KeyValue", "DestinationEntity", "RestCredentialName")
.IsUnique()
.HasDatabaseName("IX_KeyAssociations_Unique");
b.ToTable("KeyAssociations", (string)null);
});
modelBuilder.Entity("CredentialManager.Models.ProfileSchedule", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAt")
.HasColumnType("TEXT");
b.Property("CreatedBy")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("DailyTime")
.HasMaxLength(10)
.HasColumnType("TEXT");
b.Property("DayOfMonth")
.HasColumnType("INTEGER");
b.Property("DayOfWeek")
.HasColumnType("INTEGER");
b.Property("Description")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("DestinationDatabaseOverride")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("ExecutionCount")
.HasColumnType("INTEGER");
b.Property("IntervalUnit")
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("IntervalValue")
.HasColumnType("INTEGER");
b.Property("IsActive")
.HasColumnType("INTEGER");
b.Property("IsEnabled")
.HasColumnType("INTEGER");
b.Property("LastExecutionMessage")
.HasMaxLength(1000)
.HasColumnType("TEXT");
b.Property("LastExecutionRecordCount")
.HasColumnType("INTEGER");
b.Property("LastExecutionStatus")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("LastExecutionTime")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("NextExecutionTime")
.HasColumnType("TEXT");
b.Property("ProfileId")
.HasColumnType("INTEGER");
b.Property("ScheduleType")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("ScheduledDateTime")
.HasColumnType("TEXT");
b.Property("SourceDatabaseOverride")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.Property("UpdatedAt")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("ProfileId");
b.ToTable("ProfileSchedules");
});
modelBuilder.Entity("CredentialManager.Models.ScheduleExecutionHistory", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AdditionalInfo")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("CreatedAt")
.HasColumnType("TEXT");
b.Property("DestinationInfo")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("DestinationType")
.HasMaxLength(50)
.HasColumnType("TEXT");
b.Property("EndTime")
.HasColumnType("TEXT");
b.Property("ErrorDetails")
.HasMaxLength(5000)
.HasColumnType("TEXT");
b.Property("Message")
.HasMaxLength(2000)
.HasColumnType("TEXT");
b.Property("ProfileId")
.HasColumnType("INTEGER");
b.Property("ProfileName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("TEXT");
b.Property("RecordsProcessed")
.HasColumnType("INTEGER");
b.Property("RecordsWithErrors")
.HasColumnType("INTEGER");
b.Property("ScheduleId")
.HasColumnType("INTEGER");
b.Property("SourceInfo")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property("SourceType")
.HasMaxLength(50)
.HasColumnType("TEXT");
b.Property("StartTime")
.HasColumnType("TEXT");
b.Property("Status")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("TriggerType")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("TEXT");
b.Property("TriggeredBy")
.HasMaxLength(100)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("ProfileId");
b.HasIndex("ScheduleId");
b.HasIndex("StartTime");
b.HasIndex("Status");
b.HasIndex("TriggerType");
b.ToTable("ScheduleExecutionHistories", (string)null);
});
modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b =>
{
b.HasOne("CredentialManager.Models.CredentialEntity", "DestinationCredential")
.WithMany()
.HasForeignKey("DestinationCredentialId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("CredentialManager.Models.CredentialEntity", "SourceCredential")
.WithMany()
.HasForeignKey("SourceCredentialId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("DestinationCredential");
b.Navigation("SourceCredential");
});
modelBuilder.Entity("CredentialManager.Models.ProfileSchedule", b =>
{
b.HasOne("CredentialManager.Models.DataCouplerProfile", "Profile")
.WithMany()
.HasForeignKey("ProfileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Profile");
});
modelBuilder.Entity("CredentialManager.Models.ScheduleExecutionHistory", b =>
{
b.HasOne("CredentialManager.Models.ProfileSchedule", "Schedule")
.WithMany()
.HasForeignKey("ScheduleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Schedule");
});
#pragma warning restore 612, 618
}
}
}