# Task 007 — Segments Module

## Objective

Deliver Segments as saved targeting filters over imported market data, with dynamic segments fully implemented and static schema support prepared.

## Scope

- Segment model updates (`targetType`, `staticIds`)
- Segment service and protected APIs
- UI pages: `/segments`, `/segments/new`, `/segments/[id]`, `/segments/[id]/edit`
- Segment preview and members listing

**Out of scope:** Campaign sending, inbox workflows, AI classification.

## Requirements

1. Support dynamic segments for `companies`, `people`, `contact_points`.
2. Allow preview before saving (count + sample up to 20).
3. Allow edit and soft deactivate.
4. Keep all routes protected.

## Files created or modified

| Path | Action |
|------|--------|
| `src/server/models/segment.model.ts` | Update |
| `src/server/services/segment.service.ts` | Create |
| `src/app/api/segments/**` | Create |
| `src/app/segments/**` | Create |
| `src/components/segments/**` | Create |
| `src/components/layout/sidebar.tsx` | Update |
| `src/middleware.ts` | Update |
| `docs/01-architecture.md`, `02-database-schema.md`, `03-api-specification.md`, `04-ui-pages.md` | Update |
| `docs/13-decisions-log.md`, `14-roadmap.md`, `16-changelog.md` | Update |
| `tasks/README.md` | Update |

## Acceptance criteria

- [x] `npm run build` succeeds
- [x] `npm run lint` succeeds
- [x] `/segments` exists and is protected
- [x] Dynamic segment can be created and previewed
- [x] Segment detail and members are viewable
- [x] Segment can be edited/deactivated
- [x] Docs/changelog/task index updated

## Documentation updates required

- `docs/01-architecture.md`
- `docs/02-database-schema.md`
- `docs/03-api-specification.md`
- `docs/04-ui-pages.md`
- `docs/13-decisions-log.md`
- `docs/14-roadmap.md`
- `docs/16-changelog.md`
- `tasks/README.md`
