feat(cv): redesign document editing with revision-safe letters and writing tools

This commit is contained in:
cesnimda
2026-10-25 22:44:14 +01:00
parent 01e10996c5
commit 2bfaf6c14b
57 changed files with 2859 additions and 118 deletions
@@ -59,6 +59,15 @@ namespace JobTrackerApi.Controllers
var companies = await _db.Companies.AsNoTracking().OrderBy(c => c.Name).ToListAsync(cancellationToken);
var jobs = await _db.JobApplications.AsNoTracking().OrderByDescending(j => j.DateApplied).ToListAsync(cancellationToken);
var jobIds = jobs.Select(j => j.Id).ToList();
var coverLetterVersions = await _db.CoverLetterVersions.AsNoTracking()
.Where(version => jobIds.Contains(version.JobApplicationId))
.OrderBy(version => version.JobApplicationId).ThenBy(version => version.Version)
.Select(version => new
{
version.Id, version.OwnerUserId, version.JobApplicationId, version.Version,
version.Text, version.Source, version.AiAction, version.CreatedAtUtc, version.DocumentSettingsJson,
})
.ToListAsync(cancellationToken);
var correspondence = await _db.Correspondences.AsNoTracking()
.Where(c => jobIds.Contains(c.JobApplicationId))
@@ -111,6 +120,19 @@ namespace JobTrackerApi.Controllers
{
Companies = companies,
JobApplications = jobs,
CoverLetterVersions = coverLetterVersions,
SubmittedApplicationPackages = await _db.SubmittedApplicationPackages.AsNoTracking()
.Where(package => jobIds.Contains(package.JobApplicationId))
.OrderBy(package => package.Id)
.Select(package => new
{
package.Id, package.OwnerUserId, package.JobApplicationId, package.Version,
package.CvVariantId, package.CvVariantName, package.CvVariantVersion, package.CvThemeId,
package.CvSettingsJson, package.CareerProfileJson, package.RenderedCvHtml,
package.CoverLetterText, package.CoverLetterDocumentSettingsJson, package.RenderedCoverLetterHtml,
package.ApplicationMaterialJson, package.CreatedAtUtc,
Attachments = package.Attachments.Select(file => new { file.Id, file.FileName, file.FileType, file.Purpose, file.FileSize, file.Sha256 }),
}).ToListAsync(cancellationToken),
Correspondence = correspondence,
Attachments = attachments,
Events = events,