> ## 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.

# CPD Record

> CPD point record entity with approval workflow

CPD point record entity with approval workflow

Tracks CPD points earned by members.

## Fields

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

| Field                 | Type      | Required              | Notes                                                      |
| --------------------- | --------- | --------------------- | ---------------------------------------------------------- |
| name                  | string    | -                     | -                                                          |
| description           | text      | -                     | -                                                          |
| memberProfile         | ManyToOne | -                     | Who earned the CPD (always a member)                       |
| client                | ManyToOne | -                     | Multi-tenant awareness                                     |
| cpdCategory           | ManyToOne | -                     | The category of CPD (e.g. Ethics, Clinical)                |
| points                | float     | -                     | How many points were awarded                               |
| isComplete            | boolean   | -                     | Initially false, becomes true on completion                |
| earnedAt              | datetime  | -                     | Set only when completed                                    |
| sourceType            | string    | -                     | Helps you know what generated it (course, event, resource) |
| course/event/resource | ManyToOne | Course/Event/Resource | Optional links to the source content                       |

## Relationships

| Relation | Type      | Target Entity |
| -------- | --------- | ------------- |
| user     | ManyToOne | Member        |
| category | ManyToOne | CpdCategory   |

## Validation Rules

* Points must be > 0 and divisible by 0.5
* Activity date cannot be in future
* Manual entries require approval
* Auto-awarded (from courses/events) are pre-approved

## Features

### CPD Record

#### Acceptance Criteria

##### Frontend

* [ ] Admin/client UI can view and manage `CPD Record` records where applicable.

##### Backend / API

* [ ] CRUD operations exist for `CPD Record` (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 `CPD Record`.

##### Error Handling

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