# Task 011 — Segments Module

## Objective

Create audience segments with filter definitions, preview counts, and cached member counts for campaigns.

## Scope

- Segments API (CRUD, preview, refresh)
- Segment builder UI at `/segments`
- Filter JSON schema documented
- Query companies/people/contact_points for matches

**Out of scope:** Real-time segment streaming.

## Requirements

1. Preview returns count without saving.
2. Refresh updates `memberCount`.
3. Filters support sector, city, tags, owner (minimum set).

## Files to create or modify

| Path | Action |
|------|--------|
| `src/app/segments/**` | Create |
| `src/app/api/segments/**` | Create |
| `src/services/segment.service.ts` | Create |
| `docs/02-database-schema.md` | segments |
| `docs/06-campaign-system.md` | Audience link |
| `docs/16-changelog.md` | Entry |

## Acceptance criteria

- [ ] Create segment with filters and see accurate preview count
- [ ] Member count refreshes on demand
- [ ] Segment list shows name and count

## Documentation updates required

- `docs/02-database-schema.md`
- `docs/06-campaign-system.md`
- `docs/16-changelog.md`
