# ADR 0015: Customer Ownership and Contact Sharing

## Status

Accepted

## Context

The CRM customer domain already supported customer masters, contacts, leads/enquiries, and quotations, but it still lacked two production behaviors:

- a first-class primary owner for each customer
- a persistent sharing model for customer contacts

That gap caused two operational problems:

- Marketing could not reliably suggest the right sales owner when creating a lead.
- Contact visibility depended on creator/admin fallbacks instead of explicit business governance.

## Decision

We introduce two persistent governance models.

### 1. Customer owner

`crm_customers` now stores:

- `owner_user_id`
- `owner_assigned_at`
- `owner_assigned_by`

Ownership changes are recorded in `crm_customer_owner_history`.

Rules:

- one primary owner at a time
- owner is organization-scoped
- owner changes are auditable
- customer owner gains visibility to the customer and related CRM work, subject to CRM scope rules

### 2. Contact sharing

`crm_contact_shares` becomes the production source of truth for persistent contact sharing.

Rules:

- creator keeps access
- explicitly shared users gain access
- customer owner gains access
- CRM admin and broader organization/team scopes keep access
- removing a share revokes access by deactivating the share row

### 3. Lead assignment suggestion

Lead/enquiry creation now accepts an optional assignee suggestion.

When a selected customer has an owner:

- the form pre-selects that owner as the suggested sales owner
- users may override before submit
- the create route records whether the suggestion was used or overridden

## Consequences

Positive:

- customer responsibility is now explicit and historical
- contact access is governed by durable business state instead of demo-only behavior
- lead routing is more accurate at creation time

Tradeoffs:

- visibility logic across customer/contact/enquiry flows becomes more stateful
- team-scope remains approximate until a first-class team graph exists

## Notes

- This ADR does not introduce multiple primary owners, temporary shares, or territory management.
- Customer owner does not imply approval authority.
