DIP/docs/TIME_SELECTIVE_MATERIALIZAT...

41 lines
1.3 KiB
Markdown

# 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