feat(account): add deletion lifecycle
CI and Deploy / test (pull_request) Successful in 5m18s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-15 19:03:54 +02:00
parent 1ec9dd037e
commit 842e793f69
28 changed files with 4418 additions and 129 deletions
@@ -17,6 +17,116 @@ namespace JobTrackerApi.Migrations
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.14");
modelBuilder.Entity("JobTrackerApi.Models.AccountDeletionFile", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<Guid>("AccountDeletionRequestId")
.HasColumnType("TEXT");
b.Property<long>("ByteSize")
.HasColumnType("INTEGER");
b.Property<string>("Category")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property<string>("OriginalPath")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("QuarantinePath")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Sha256")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("AccountDeletionRequestId", "Status");
b.ToTable("AccountDeletionFiles");
});
modelBuilder.Entity("JobTrackerApi.Models.AccountDeletionRequest", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("TEXT");
b.Property<int>("AttemptCount")
.HasColumnType("INTEGER");
b.Property<DateTimeOffset?>("CompletedAtUtc")
.HasColumnType("TEXT");
b.Property<int>("DatabaseRowCount")
.HasColumnType("INTEGER");
b.Property<int>("FileCount")
.HasColumnType("INTEGER");
b.Property<string>("LastErrorCategory")
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property<string>("LastErrorMessage")
.HasColumnType("TEXT");
b.Property<string>("OwnerKey")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property<string>("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property<DateTimeOffset>("RequestedAtUtc")
.HasColumnType("TEXT");
b.Property<string>("RequestedByUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property<string>("Stage")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property<DateTimeOffset?>("StartedAtUtc")
.HasColumnType("TEXT");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property<string>("WarningJson")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("OwnerUserId", "Status");
b.HasIndex("Status", "RequestedAtUtc");
b.ToTable("AccountDeletionRequests");
});
modelBuilder.Entity("JobTrackerApi.Models.AiInteraction", b =>
{
b.Property<int>("Id")
@@ -209,6 +319,16 @@ namespace JobTrackerApi.Migrations
b.Property<int?>("CurrentCvUploadArtifactId")
.HasColumnType("INTEGER");
b.Property<DateTimeOffset?>("DeletionRequestedAtUtc")
.HasColumnType("TEXT");
b.Property<string>("DeletionStatus")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(32)
.HasColumnType("TEXT")
.HasDefaultValue("active");
b.Property<string>("DisplayName")
.HasColumnType("TEXT");
@@ -2332,6 +2452,17 @@ namespace JobTrackerApi.Migrations
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("JobTrackerApi.Models.AccountDeletionFile", b =>
{
b.HasOne("JobTrackerApi.Models.AccountDeletionRequest", "Request")
.WithMany("Files")
.HasForeignKey("AccountDeletionRequestId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Request");
});
modelBuilder.Entity("JobTrackerApi.Models.AiInteraction", b =>
{
b.HasOne("JobTrackerApi.Models.JobApplication", "JobApplication")
@@ -2662,6 +2793,11 @@ namespace JobTrackerApi.Migrations
.IsRequired();
});
modelBuilder.Entity("JobTrackerApi.Models.AccountDeletionRequest", b =>
{
b.Navigation("Files");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerProfile", b =>
{
b.Navigation("Certifications");