docs(architecture): mark Phase 3 career foundation shipped
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,27 @@
|
||||
> Companion to `docs/architecture/current.md` §4a (profile/career separation) and
|
||||
> `docs/decisions/ADR-002-job-application-model.md`. Verified against code on 2026-07-18.
|
||||
|
||||
> ## Implementation status (2026-07-18) — SHIPPED
|
||||
>
|
||||
> The model below is implemented on `main` and verified against the live database:
|
||||
> - **Entities** (`Models/CareerEntities.cs`): `CareerExperience`, `CareerEducation`, `CareerSkill`,
|
||||
> `CareerProject`, `CareerCertification`, `CareerLanguage` — relational children of `CareerProfile`;
|
||||
> long tail in `CareerProfile.LongTailJson`. Migration `AddCareerProfileRelationalChildren`
|
||||
> (applied cleanly on the real dev DB and the running container).
|
||||
> - **Projection** (`CareerProfileService` + `CareerProfileMapper`): relational is the source of
|
||||
> truth; `SaveVersionAsync` syncs children + long tail; `LoadStructuredAsync` reads relationally
|
||||
> with lazy backfill from the blob; the `ProfileCvStructureJson` blob is kept as the derived
|
||||
> projection.
|
||||
> - **API** (`CareerProfileController`, `/api/career/profile`): GET/PUT profile, GET completeness,
|
||||
> GET versions, POST version restore. Validation via `CareerProfileValidator` (abuse limits).
|
||||
> - **Frontend** (`/career`): reads/writes the relational API, profile-completeness overview,
|
||||
> version-history restore.
|
||||
> - **Tests**: 23 career-focused backend tests (round-trip, item-key stability, replace-all,
|
||||
> backfill, completeness, validation, versioning/restore) + frontend save/completeness tests.
|
||||
>
|
||||
> Not yet done (later): promote the long tail to relational if needed; a full section-by-section UX
|
||||
> redesign of the editor; the eventual removal of the derived blob once every reader flips.
|
||||
|
||||
---
|
||||
|
||||
## 1. Where we start (F1, on `main`)
|
||||
|
||||
Reference in New Issue
Block a user