# Dogs

### What it is responsible for

The Dogs subsystem manages dog API work through `DogsController` and its entry points: `create`, `findAll`, `findOne`, `update`, and `remove`. The named `DogsService` participates in the subsystem, alongside `Dog`, `CreateDogDto`, and `UpdateDogDto`. `DogsModule` identifies its module boundary. The available evidence does not specify behavior beyond these named operations and types. `Dog`, `CreateDogDto`, and `UpdateDogDto` are named classes associated with the subsystem, while the evidence names no further responsibilities for these classes themselves.

### What it needs, and who needs it

Dogs has no recorded dependencies within this repository. `Integration` depends on Dogs, making it the recorded consumer of this subsystem. Without Dogs, that dependency cannot be satisfied, so [Integration](subsystem-integration) would lose its recorded Dogs relationship. This evidence does not identify any additional internal or external dependency requirements.

11 entities in `integration/inspector/src/dogs`. **1 other subsystem depends on it**, which makes it the 4th most depended-upon part of this codebase.

## What it is made of

Its 11 entities sit in 6 files under `integration/inspector/src/dogs`: 5 HTTP endpoints, 3 classes, 1 controller, 1 module and 1 more.
`dogs.controller.ts` holds 6 of them — more than any other file here.
`DogsService` declares 5 methods, the widest surface here.

## Where work enters

1 controller publishes 5 HTTP endpoints — 2 `GET`, 1 `POST`, 1 `PATCH` and 1 `DELETE`. They answer under `/dogs`. None of them declares a guard.

- `DogsController` — `integration/inspector/src/dogs/dogs.controller.ts`:14
- `create` — `integration/inspector/src/dogs/dogs.controller.ts`:18
- `findAll` — `integration/inspector/src/dogs/dogs.controller.ts`:23
- `findOne` — `integration/inspector/src/dogs/dogs.controller.ts`:28
- `update` — `integration/inspector/src/dogs/dogs.controller.ts`:33
- `remove` — `integration/inspector/src/dogs/dogs.controller.ts`:38

## Boundaries

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

They hold 1 edge into it between them. What they reach is narrower than the folder: 1 of its 11 members carries every inbound edge — `DogsModule` (1).

**It depends on no other subsystem in this repository** — it is a leaf.
