//
using System;
using JobTrackerApi.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace JobTrackerApi.Migrations
{
[DbContext(typeof(JobTrackerContext))]
[Migration("20260311093000_AddAttachmentsAndJobEvents")]
partial class AddAttachmentsAndJobEvents
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "7.0.17");
modelBuilder.Entity("JobTrackerApi.Models.Attachment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("FileName")
.IsRequired()
.HasColumnType("TEXT");
b.Property("FilePath")
.IsRequired()
.HasColumnType("TEXT");
b.Property("FileType")
.IsRequired()
.HasColumnType("TEXT");
b.Property("FileSize")
.HasColumnType("INTEGER");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("UploadDate")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.ToTable("Attachments");
});
modelBuilder.Entity("JobTrackerApi.Models.Company", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Source")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Companies");
});
modelBuilder.Entity("JobTrackerApi.Models.Correspondence", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("Content")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Date")
.HasColumnType("TEXT");
b.Property("From")
.IsRequired()
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.ToTable("Correspondences");
});
modelBuilder.Entity("JobTrackerApi.Models.JobApplication", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CompanyId")
.HasColumnType("INTEGER");
b.Property("CoverLetterText")
.HasColumnType("TEXT");
b.Property("DateApplied")
.HasColumnType("TEXT");
b.Property("DeletedAt")
.HasColumnType("TEXT");
b.Property("FeedbackRequestedAt")
.HasColumnType("TEXT");
b.Property("FollowUpAt")
.HasColumnType("TEXT");
b.Property("IsDeleted")
.HasColumnType("INTEGER");
b.Property("JobTitle")
.IsRequired()
.HasColumnType("TEXT");
b.Property("JobUrl")
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("NextAction")
.HasColumnType("TEXT");
b.Property("Notes")
.HasColumnType("TEXT");
b.Property("ResponseDate")
.HasColumnType("TEXT");
b.Property("ResponseReceived")
.HasColumnType("INTEGER");
b.Property("Salary")
.HasColumnType("TEXT");
b.Property("Status")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("TEXT")
.HasDefaultValue("Applied");
b.HasKey("Id");
b.HasIndex("CompanyId");
b.ToTable("JobApplications");
});
modelBuilder.Entity("JobTrackerApi.Models.JobEvent", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("At")
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("NewValue")
.HasColumnType("TEXT");
b.Property("Note")
.HasColumnType("TEXT");
b.Property("OldValue")
.HasColumnType("TEXT");
b.Property("Type")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.ToTable("JobEvents");
});
modelBuilder.Entity("JobTrackerApi.Models.RuleSettings", b =>
{
b.Property("Id")
.HasColumnType("INTEGER");
b.Property("AppliedFollowUpDays")
.HasColumnType("INTEGER");
b.Property("AppliedGhostDays")
.HasColumnType("INTEGER");
b.Property("FeedbackFollowUpDays")
.HasColumnType("INTEGER");
b.Property("FeedbackGhostDays")
.HasColumnType("INTEGER");
b.Property("OfferFollowUpDays")
.HasColumnType("INTEGER");
b.Property("OfferGhostDays")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.ToTable("RuleSettings");
b.HasData(new
{
Id = 1,
AppliedFollowUpDays = 14,
AppliedGhostDays = 30,
OfferFollowUpDays = 7,
OfferGhostDays = 14,
FeedbackFollowUpDays = 7,
FeedbackGhostDays = 14
});
});
modelBuilder.Entity("JobTrackerApi.Models.Attachment", b =>
{
b.HasOne("JobTrackerApi.Models.JobApplication", "JobApplication")
.WithMany("Attachments")
.HasForeignKey("JobApplicationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("JobApplication");
});
modelBuilder.Entity("JobTrackerApi.Models.Correspondence", b =>
{
b.HasOne("JobTrackerApi.Models.JobApplication", "JobApplication")
.WithMany("Messages")
.HasForeignKey("JobApplicationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("JobApplication");
});
modelBuilder.Entity("JobTrackerApi.Models.JobApplication", b =>
{
b.HasOne("JobTrackerApi.Models.Company", "Company")
.WithMany("Jobs")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
});
modelBuilder.Entity("JobTrackerApi.Models.JobEvent", b =>
{
b.HasOne("JobTrackerApi.Models.JobApplication", "JobApplication")
.WithMany("Events")
.HasForeignKey("JobApplicationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("JobApplication");
});
modelBuilder.Entity("JobTrackerApi.Models.Company", b =>
{
b.Navigation("Jobs");
});
modelBuilder.Entity("JobTrackerApi.Models.JobApplication", b =>
{
b.Navigation("Attachments");
b.Navigation("Events");
b.Navigation("Messages");
});
#pragma warning restore 612, 618
}
}
}