feat: complete release readiness work
- consolidate API ownership and remove dead vendor code - add Stripe billing, learning paths, and public CV hardening - add migration, recovery, security, audit, and browser gates
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
namespace JobTrackerApi.Models;
|
||||
|
||||
// Persists interview prep so it survives tab switches and page reloads instead of being an AI
|
||||
// call re-run every time the tab opens (career-workspace-implementation-roadmap.md Phase F5 --
|
||||
// "persist interview prep / fit outputs" -- flagged in the product teardown as work evaporating
|
||||
// on every re-open). One row per job application; regenerated when the selected attachment
|
||||
// context changes or the user explicitly requests a refresh.
|
||||
public sealed class InterviewPrepNote
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string OwnerUserId { get; set; } = string.Empty;
|
||||
public int JobApplicationId { get; set; }
|
||||
public JobApplication? JobApplication { get; set; }
|
||||
// Fingerprint of the attachment selection this note was generated from, so a different
|
||||
// attachment selection triggers regeneration without needing an explicit refresh.
|
||||
public string AttachmentContextSignature { get; set; } = string.Empty;
|
||||
public string Summary { get; set; } = string.Empty;
|
||||
public string TalkingPointsJson { get; set; } = "[]";
|
||||
public string LikelyQuestionsJson { get; set; } = "[]";
|
||||
public string WeakSpotsJson { get; set; } = "[]";
|
||||
public DateTimeOffset GeneratedAtUtc { get; set; } = DateTimeOffset.UtcNow;
|
||||
}
|
||||
Reference in New Issue
Block a user