This commit is contained in:
2026-04-01 14:51:45 +03:00
parent 784d52d1af
commit 05f5cf5393
13 changed files with 384 additions and 1212 deletions

View File

@@ -4,12 +4,12 @@
# @SEMANTICS: profile, service, validation, ownership, filtering, superset, preferences
# @PURPOSE: Orchestrates profile preference persistence, Superset account lookup, and deterministic actor matching.
# @LAYER: Domain
# @RELATION: DEPENDS_ON -> backend.src.models.profile
# @RELATION: DEPENDS_ON -> backend.src.schemas.profile
# @RELATION: DEPENDS_ON -> backend.src.core.superset_client
# @RELATION: DEPENDS_ON -> backend.src.core.auth.repository
# @RELATION: DEPENDS_ON -> backend.src.models.auth
# @RELATION: DEPENDS_ON -> sqlalchemy.orm.Session
# @RELATION: DEPENDS_ON -> [UserDashboardPreference]
# @RELATION: DEPENDS_ON -> [ProfilePreferenceResponse]
# @RELATION: DEPENDS_ON -> [SupersetClient]
# @RELATION: DEPENDS_ON -> [AuthRepositoryModule]
# @RELATION: DEPENDS_ON -> [User]
# @RELATION: DEPENDS_ON -> [sqlalchemy.orm.Session]
#
# @INVARIANT: Preference mutations are always scoped to authenticated user identity.
# @INVARIANT: Username normalization is trim+lower and shared by save and matching paths.