Files
alla-allaos-fullstack/docs/implementation/task-c1-customer-ownership-contact-sharing-governance.md
phaichayon 3f28fde39f task-c.1
2026-06-22 15:49:31 +07:00

1.7 KiB

Task C.1: Customer Ownership and Contact Sharing Governance

Summary

Task C.1 completes the missing customer-governance layer by adding:

  • persistent customer owner fields and owner history
  • persistent contact sharing
  • owner/share-aware customer and contact visibility
  • lead owner suggestion during lead/enquiry creation

Delivered

  • Added ownerUserId, ownerAssignedAt, and ownerAssignedBy to crm_customers
  • Added crm_customer_owner_history
  • Added crm_contact_shares
  • Added customer owner management route:
    • PATCH /api/crm/customers/[id]/owner
    • DELETE /api/crm/customers/[id]/owner
  • Added contact sharing routes:
    • GET /api/crm/customers/[id]/contacts/[contactId]/shares
    • POST /api/crm/customers/[id]/contacts/[contactId]/shares
    • DELETE /api/crm/customers/[id]/contacts/[contactId]/shares/[shareId]
  • Expanded customer list/detail contracts with owner and share metadata
  • Added customer owner card with history on customer detail
  • Added contact sharing management UI on customer detail
  • Added owner columns and owner filter on customer list
  • Added new permissions:
    • crm.customer.owner.read
    • crm.customer.owner.manage
    • crm.contact.share.read
    • crm.contact.share.create
    • crm.contact.share.delete
    • crm.contact.share.manage
  • Added lead/enquiry assignee suggestion from selected customer owner
  • Added audit events for:
    • assign_owner
    • change_owner
    • clear_owner
    • share
    • unshare
    • lead_owner_suggestion_used
    • lead_owner_suggestion_overridden

Verification

  • npx tsc --noEmit

Remaining limitation

  • Team-scope visibility is still approximate because the production model still lacks an explicit CRM team hierarchy.