# Activity

## What it is responsible for

Activity manages activity-related data and operations for the Outlook plugin, centered on `Activity` and its related types. Entry points include `ActivityTypesEnum`, `ActivityStatusEnum`, and `ActivityEMailsTypesEnum`, which define activity, status, and email-type categories. They are named entry points. The subsystem also handles named activity aspects such as `ActivityLocation`, `ActivityParticipant`, `Reminder`, `ActivityPurpose`, `ActivityEMail`, `ActivityTopic`, and `ActivityAction`. Its mail-oriented operations include `checkEctivityMailResponse`, `saveMailActiivity`, `saveMailActiivityWithAttachment`, and `checkMailActiivityWithConversationId`; their names identify activity-mail checking and saving paths, including attachments and conversation IDs.

## What it needs, and who needs it

Activity depends on [Auth](subsystem-outlook-plugin-src-auth), [Attachement](subsystem-outlook-plugin-src-attachement), and [Pams](subsystem-pams). Without those dependencies, this subsystem cannot retain its declared integrations with those named subsystems. Outlook_plugin/src/taskpane depends on Activity; without Activity, the taskpane loses access to `Activity` and the activity enums it enters through, including `ActivityTypesEnum` and `ActivityStatusEnum`.

17 entities in `Outlook_plugin/src/activity`. **1 other subsystem depends on it**, which makes it the 5th most depended-upon part of this codebase.

## What it is made of

Its 17 entities sit in 2 files under `Outlook_plugin/src/activity`: 10 classes, 3 enums, 3 functions and 1 service.
`activity.model.ts` holds 13 of them — more than any other file here.

## Where work enters

- [`Activity`](service-activity) — `Outlook_plugin/src/activity/activity.service.ts`:1
- [`ActivityTypesEnum`](enum-activitytypesenum-3) — `Outlook_plugin/src/activity/activity.model.ts`:42
- [`ActivityStatusEnum`](enum-activitystatusenum-3) — `Outlook_plugin/src/activity/activity.model.ts`:52
- [`ActivityEMailsTypesEnum`](enum-activityemailstypesenum) — `Outlook_plugin/src/activity/activity.model.ts`:62

## Boundaries

**1 other subsystem depends on this one** — `Taskpane`. Changing what it exposes changes them.

They hold 6 edges into it between them. 7 edges leave it against 6 arriving — it reads more of this repository than this repository reads of it. What they reach is narrower than the folder: 6 of its 17 members carry every inbound edge — `Activities` (1), `ActivityEMailsTypesEnum` (1) and `ActivityTypesEnum` (1), plus 3 more. Of the 7 it sends out, 5 go to `Auth` — more than to any other.

It depends on `Auth`, `Attachement`, `Pams`, and on nothing else in this repository.
