You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/design/database_models.md
+43Lines changed: 43 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -268,6 +268,21 @@ Simple model, represents person role within a membership (see
268
268
Similar to [`Task`](#task) model, but it's for a person task within a membership. Links
269
269
to `MembershipPersonRole`.
270
270
271
+
### `Consortium`
272
+
Represents a consortium of multiple organisations. A consortium can be the partner in a
273
+
[`Partnership`](#partnership).
274
+
275
+
### `PartnershipTier`
276
+
Represents a tier level for a partnership (e.g. "Bronze", "Silver", "Gold"), with an
277
+
associated credit count.
278
+
279
+
### `Partnership`
280
+
Represents a service partnership between The Carpentries and an organisation or
281
+
consortium. A follow-up to the [`Membership`](#membership) model, introduced as part of
282
+
the [Service Offering 2025 project](./projects/2025_service_offering.md).
283
+
284
+
Includes a `registration_code` field — a unique code used to identify the partnership in trainee applications or workshop requests (see also [Member Code Enforcement](./projects/2023_member_code_enforcement.md)).
The offering application models support the [Service Offering 2025](./projects/2025_service_offering.md) project. They represent
411
+
the purchasing and allocation of benefits to partner organisations and individuals.
412
+
413
+
### `Account`
414
+
Represents the individual or organisation that purchases benefits. An `Account` is linked
415
+
to a `Person`, `Organization`, or `Consortium` via a generic foreign key.
416
+
417
+
### `AccountOwner`
418
+
Represents a person appointed as the owner of an account. Stores the permission type
419
+
(owner, programmatic contact, or billing contact).
420
+
421
+
### `Benefit`
422
+
Represents a single good available to be purchased for an account (e.g. training seats
423
+
or workshop events). Stores a unit type and credit count.
424
+
425
+
### `AccountBenefitDiscount`
426
+
Simple model representing a discount that can be applied to an account benefit purchase. The discount is just a text, no logic is applied to it in AMY, but it can be used for reporting and tracking purposes.
427
+
428
+
### `AccountBenefit`
429
+
Represents a single benefit purchased for an account. Links an [`Account`](#account) to
430
+
a [`Benefit`](#benefit), optionally via a [`Partnership`](#partnership). Stores
431
+
allocation, date range, and a unique `registration_code` used to identify the benefit in
432
+
training requests and workshop requests (see [Member Code Enforcement](./projects/2023_member_code_enforcement.md)).
0 commit comments