# TIME selective materialization by person This NEW-only patch adds the ability to materialize canonical `TIME.time_entry` rows and refresh projection/representations only for Leitstand time recordings that belong to one selected person after the raw `TIME.ls_*` import is already present. ## Service methods - `LeitstandTimeImportService.materializeCanonicalTimeEntriesForPersonDbk(String personDbk, boolean rebuildProjection)` - `LeitstandTimeImportService.materializeCanonicalTimeEntriesForPersonNumber(Integer personNumber, boolean rebuildProjection)` - `LeitstandTimeProjectionService.refreshForPersonDbk(String personDbk)` ## Optional startup runner Enable with: ```yaml dip: time: leitstand: startup-selective-materialization-enabled: true selective-materialization-person-dbk: 100919970619190804070001 selective-materialization-build-projection: true ``` or: ```yaml dip: time: leitstand: startup-selective-materialization-enabled: true selective-materialization-person-number: 12345 selective-materialization-build-projection: true ``` ## Notes - intended for already imported `TIME.ls_*` rows - no legacy code changes - no raw source sync is triggered by this runner - if projection rebuild is enabled, representations/embedding enqueueing continue to use the existing T3 behavior