1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Data model for N-week period trend roll-ups.
//!
//! Provides [`AuthorPeriodSummary`] — the per-author, per-period record
//! returned by [`super::query_author_period_trends`].
use HashMap;
use ;
use cratePrMetrics;
/// Aggregated per-author metrics for a single N-week period window.
///
/// Why: longitudinal contributor profiling (epic #558) needs period-level
/// roll-ups of the existing per-week data so callers can plot trends over time
/// without fetching the full weekly-activity grain.
/// What: holds all dimensions required for one period window — label, date bounds,
/// commit count, per-category breakdown, effort histogram, averaged quality score,
/// ticket coverage percentage, PR metrics, and repositories touched. All fields
/// derive from existing DB schema; no migrations required.
/// Test: see `query::tests::period_trends_basic_windowing` and related tests.