Bỏ qua nội dung

Contacts - cập nhật contact

Feature URL
Module
contacts
Status
draft
Priority
P1
Platforms
fe · be
AC progress
0 / 6
Last reviewed
2026-05-29

Mục tiêu

Cho phép broker chỉnh sửa thông tin contact trong CRM khi dữ liệu thay đổi hoặc cần bổ sung. Việc cập nhật phải giữ ổn định quan hệ giữa contact và listings đang tham chiếu.

Phạm vi

Trong phạm vi (In scope):

  • Cập nhật thông tin nhận diện và ghi chú nghiệp vụ của contact.
  • Cập nhật số điện thoại thông qua quan hệ với phone_registries khi được phép.
  • Kiểm tra quyền chỉnh sửa theo owner/broker hoặc visibility rule.
  • Giữ nguyên contact_id cho các listings đang liên kết.

Ngoài phạm vi (Out of scope):

  • Merge nhiều contact thành một.
  • Xoá hoặc lưu trữ contact.
  • Cập nhật hàng loạt nhiều contact.
  • Audit log chi tiết thao tác người dùng trong mô hình tài liệu.

User Stories

  • broker, tôi muốn sửa thông tin contact, để dữ liệu CRM luôn đúng và dễ sử dụng.
  • broker, tôi muốn bổ sung ghi chú cho contact, để nhớ ngữ cảnh liên hệ.
  • Backend, tôi muốn cập nhật contact mà không đổi contact_id, để các listing liên quan không bị mất liên kết.

Luồng chức năng

sequenceDiagram
    actor Broker
    participant App
    participant BE
    participant Phone as Phone Registries
    participant Contacts

    Broker->>App: Chỉnh sửa contact
    App->>BE: Gửi dữ liệu cập nhật
    BE->>Contacts: Kiểm tra quyền chỉnh sửa
    alt Có đổi số điện thoại
        BE->>Phone: Tra hoặc tạo phone_registry mới
        Phone-->>BE: phone_registry_id
    end
    BE->>Contacts: Cập nhật contact
    Contacts-->>BE: Contact sau cập nhật
    BE-->>App: Hiển thị kết quả

Acceptance Criteria

  • AC-1: Broker chỉ có thể cập nhật contact trong phạm vi được phép.
  • AC-2: Cập nhật contact không làm thay đổi contact_id.
  • AC-3: Nếu cập nhật số điện thoại, hệ thống phải xử lý qua phone_registries.
  • AC-4: Các listing đang gắn với contact vẫn giữ liên kết sau cập nhật.
  • AC-5: Hệ thống phải từ chối dữ liệu cập nhật không đạt rule nghiệp vụ tối thiểu.
  • AC-6: Broker nhìn thấy thông tin mới sau khi cập nhật thành công.

Quy tắc nghiệp vụ

  • Không cho phép sửa contact ngoài phạm vi owner/broker hoặc visibility rule.
  • Số điện thoại không được ghi trực tiếp vào contact nếu hệ thống dùng phone_registries.
  • Thay đổi số điện thoại cần tránh tạo trùng contact theo rule resolve đã chốt.
  • Contact từ crawl có thể bị hạn chế trường được chỉnh sửa nếu cần bảo toàn dữ liệu nguồn.

Dữ liệu & Trạng thái

Entity nghiệp vụ:

  • Contact: bản ghi được cập nhật nhưng giữ nguyên định danh.
  • PhoneRegistry: bản ghi số điện thoại được tham chiếu khi số điện thoại thay đổi.

Trạng thái user-facing:

  • updated - contact cập nhật thành công.
  • invalid - dữ liệu cập nhật không hợp lệ.
  • forbidden - broker không có quyền cập nhật contact.
  • conflict - thay đổi gây xung đột với rule trùng số hoặc ownership.

Liên quan