Membership Term
What It Models
A term records one period of membership coverage and the type and offer that define it. Keeping separate periods allows staff to distinguish renewals, gaps and later corrections without replacing the lasting membership.
Identity and Attributes
Start and end dates are inclusive; unlimited terms have no end. Commitment, closure and supersession facts explain how the period changed. Commerce references support fulfilment and cancellation, while a source-term reference connects grants and organizational children to the period that produced them.
Relationships
The membership owns the term and the term owns its unit affiliations. Grants and child periods reference a source term. Billing points to a candidate period and its reviewed version without acquiring ownership.
Invariants
Overlap checks and the effective-period exclusion protect coverage within one holding. Database checks validate dates and state-dependent facts. Staff operations check versions and lifecycle eligibility. An own-rule grant has a distinct period calculation and must not be described as always bounded by the source end.
How It Is Stored and Shared
Memberships owns live periods and their temporal versions. The Commerce participant also maintains reservation records whose references survive removal of an unfulfilled period. Billing selects periods, and history and snapshots reconstruct their earlier values.
Open Design Questions
Cross-program exclusivity needs protection during concurrent additions and corrections. Amendments remain unavailable, despite the stored supersession fields. The import path can create facts that the staff path would reject.