# EP.1.2 – Activity Integration & Legacy Follow-up Adapter

Status: Completed

Priority: Critical

Type: Feature Integration

Depends On

- EP.1.1 Activity Domain Foundation
- ENG.0 Engineering Constitution
- AR.1 Architecture Transition Plan
- AR.2 Epic Technical Design

---

# Objective

Introduce the Activity Integration Layer that connects the new Activity Domain with existing CRM modules while preserving all legacy follow-up implementations.

This phase establishes adapter-based integration without introducing data migration, dual-write, or projection consumers.

The objective is to prepare existing modules to consume Activity incrementally while maintaining production stability.

---

# Background

EP.1.1 introduced the additive `crm_activities` write model.

Current CRM still contains multiple follow-up implementations:

- Lead (audit-log-backed)
- Opportunity (row-backed)
- Quotation (row-backed)

Business Constitution defines Activity as the long-term operational model.

Architecture Constitution requires:

- Preserve existing production behavior.
- Introduce Activity through adapters.
- Delay consolidation until adapters are validated.

---

# Review Required

Review

Business

- Relationship & Sales Workspace Blueprint
- Activity Blueprint

Architecture

- AR.1 Architecture Transition Plan
- AR.2 Epic Technical Design

Engineering

- Engineering Constitution

Implementation

- EP.1.1 Activity Foundation
- Existing Lead Follow-up
- Existing Opportunity Follow-up
- Existing Quotation Follow-up
- Existing Dashboard queries
- Existing Reports
- Existing Audit Log

UI

- Workspace UI/UX Design Note
- layout.md
- ui-ux-rules.md
- ui-ux-pro-max

---

# Scope

## Part 1 — Legacy Follow-up Adapter Layer

Introduce adapter interfaces.

Create

LeadFollowUpAdapter

OpportunityFollowUpAdapter

QuotationFollowUpAdapter

Responsibilities

Read legacy follow-up

Translate legacy model

Produce Activity-compatible DTO

No database migration.

No dual write.

---

## Part 2 — Activity Context Integration

Integrate Activity with

Customer

Contact

Lead

Opportunity

Quotation

PO

Activity must resolve context without changing ownership of those domains.

---

## Part 3 — Activity Type Governance

Freeze the official activity catalog.

Minimum types

- Meeting
- Visit
- Phone Call
- Email
- Site Survey
- Presentation
- Reminder
- Internal Task
- Follow-up
- Delivery Coordination
- Approval Action

Introduce `crm_activity_type` master options.

No hard-coded types.

---

## Part 4 — Activity Context Strategy

Freeze

contextType

contextId

supported contexts

Exactly one primary context.

Optional related references.

Prepare Timeline and Calendar compatibility.

---

## Part 5 — Activity Number Strategy

Introduce configurable document numbering.

Example

ACT2607-0001

Support

Organization

Branch

Period

Sequence

Reuse existing Document Sequence Foundation.

---

## Part 6 — Activity Attachment Foundation

Integrate Activity with existing Storage Foundation.

Support

Images

PDF

Office Documents

Voice Recording

Drawing

No new storage engine.

Reuse current abstraction.

---

## Part 7 — Activity UI Integration

Extend existing pages.

Customer Detail

Opportunity Detail

Quotation Detail

Lead Detail

Add

Recent Activities

Create Activity

Activity Summary

Do NOT replace Follow-up UI.

Run both in parallel.

---

## Part 8 — Permission Integration

Reuse existing CRM permission model.

Support

Owner

Assignee

Manager

Administrator

Organization

Branch

Product Type

Pricing visibility

Internal-only Activity

---

## Part 9 — Compatibility Layer

Introduce compatibility interfaces.

Legacy Follow-up

↓

Activity Adapter

↓

Activity DTO

Current consumers remain unchanged.

No existing API removed.

No schema migration.

---

## Part 10 — Migration Readiness

Produce

Adapter validation

Compatibility report

Legacy usage inventory

Projection readiness report

Migration checklist

No migration execution.

---

# Deliverables

1. Lead Follow-up Adapter
2. Opportunity Follow-up Adapter
3. Quotation Follow-up Adapter
4. Activity Context Integration
5. Activity Type Governance
6. Activity Numbering Strategy
7. Activity Attachment Foundation
8. Activity UI Integration
9. Compatibility Layer
10. Migration Readiness Report

---

# Constraints

Must preserve

- Existing Follow-up
- Existing APIs
- Existing Reports
- Existing Dashboard
- Existing Audit History
- Existing Permissions

No Timeline.

No Calendar.

No Notification.

No My Day.

No Dashboard Projection.

No Event Publishing.

No data migration.

No dual write.

---

# Acceptance Criteria

- Activity integrates with all major CRM modules.
- Existing Follow-up continues to function.
- Adapter Layer becomes the only integration point.
- Activity Types are centrally governed.
- Activity Numbering follows Document Sequence Foundation.
- Activity Attachments reuse existing Storage Foundation.
- No production behavior changes.
- No breaking API changes.
- No duplicated business logic.
- No duplicated lifecycle.

---

# Success Criteria

Activity is fully integrated into the CRM foundation.

Legacy Follow-up remains operational.

All future projection epics can consume Activity through stable interfaces.

Repository remains backward compatible.

Ready for

EP.1.3 – Business Event Foundation & Projection Contracts.
