Closes ART-OBSERVER-ADVANCE-AGGREGATE. Recomputes artist_engagements.advancing_completed_count + advancing_total_count on every section lifecycle event (created / updated-status-only / deleted). Atomic via DB::transaction + lockForUpdate on both the parent engagement and the sibling section rows; concurrent section- status changes serialise correctly. Counter updates use disableLogging() — counter sync is housekeeping, not audit. The section's own updated event continues to log via LogsActivity on AdvanceSection. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB