> ## Documentation Index
> Fetch the complete documentation index at: https://memberpulseptyltd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Group / Corporate Membership

> Group membership entity for corporate accounts

Group membership entity for corporate accounts

Represents corporate group accounts with seat management.

## Fields

### Field Registry (from `workspace/sources/entity-registry.csv`)

| Field                   | Input Type | Required | Notes                                                                                                                                                                                                                                 |
| ----------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Group Name              | Text       | Required | model: `name`, rel: string                                                                                                                                                                                                            |
| Group Description       | Text       | Required | model: `description`, rel: text                                                                                                                                                                                                       |
| Group Registration Date | Date       | Required | model: `startDate`, rel: datetime                                                                                                                                                                                                     |
| Group Expiry Date       | Date       | Required | model: `endDate`, rel: datetime                                                                                                                                                                                                       |
| Group ID                | Number     | Required | -                                                                                                                                                                                                                                     |
| Price                   | Number     | Required | May need regex here to allow cents; model: `price`, rel: float                                                                                                                                                                        |
| Currency                | -          | -        | model: `currency`, rel: string                                                                                                                                                                                                        |
| Number of Seats         | Number     | Required | model: `numberOfSeats`, rel: integer                                                                                                                                                                                                  |
| Group Admin             | Selector   | Required | Need the ability to search for name include email, the selector should display as "John Smith - [john@email.com](mailto:john@email.com)" with autocomplete functionality, if left empty it uses the fields below; model: `groupAdmin` |
| Group Admin First Name  | Text       | Required | -                                                                                                                                                                                                                                     |
| Group Admin Last Name   | Text       | Required | -                                                                                                                                                                                                                                     |
| Group Admin Email       | Email      | Required | -                                                                                                                                                                                                                                     |
| Membership Plan         | Selector   | Required | Should be a repeater based on the "number of seats" number which generates fields with a list of the memberships and if the fields are left blank the member can add it in themselves                                                 |
| Member First Name       | Text       | Required | -                                                                                                                                                                                                                                     |
| Member Last Name        | Text       | Required | -                                                                                                                                                                                                                                     |
| Member Email            | Email      | Required | -                                                                                                                                                                                                                                     |

## Relationships

| Relation       | Type      | Target Entity  |
| -------------- | --------- | -------------- |
| membershipPlan | ManyToOne | MembershipPlan |
| members        | OneToMany | Member         |

## Business Rules

* Occupied seats cannot exceed total seats
* Admin email must be valid
* Cannot reduce seats below occupied count

## Features

### Group / Corporate Membership

#### Acceptance Criteria

##### Frontend

* [ ] Admin/client UI can view and manage `Group / Corporate Membership` records where applicable.

##### Backend / API

* [ ] CRUD operations exist for `Group / Corporate Membership` (create, read, update, delete/archive).

##### Permissions

* [ ] Access is restricted to appropriate roles (tenant-scoped).

##### Business Rules

* [ ] Fields and relationships documented on this page are enforced for `Group / Corporate Membership`.

##### Error Handling

* [ ] Invalid payloads return field-level validation errors.
