# Moderation module

## Responsibilities

- create and query moderation case records
- manage active warning state
- optionally DM warned users
- optionally auto-timeout when warning thresholds are reached

## Main methods

- `createCase()`
- `issueWarning()`
- `getCaseById()`
- `getUserCases()`
- `getUserWarnings()`
- `getUserNotes()`
- `clearCase()`
- `searchCases()`
- `getActiveWarningCount()`

## Notes

- case IDs are generated in application code as `CASE-0001`, `CASE-0002`, and so on
- warnings are the main case type that starts as `active: true`
- `issueWarning()` can DM the user and can create a follow-up timeout case when the configured threshold is hit
- the service stores moderation records; it does not generally execute Discord actions itself
- the auto-timeout path is the exception because a timeout target can be passed into `issueWarning()`
