Bỏ qua nội dung

Contacts - xoá hoặc lưu trữ 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 xoá hoặc lưu trữ contact không còn cần dùng, đồng thời bảo vệ dữ liệu listing đang phụ thuộc vào contact. Feature này ưu tiên hành vi an toàn thay vì xoá cứng gây mất liên kết.

Phạm vi

Trong phạm vi (In scope):

  • Xoá hoặc lưu trữ contact trong phạm vi broker được phép.
  • Chặn thao tác khi contact đang được listing quan trọng tham chiếu nếu rule yêu cầu.
  • Hỗ trợ trạng thái archive để ẩn contact khỏi danh sách mặc định.
  • Cho phép khôi phục về mặt nghiệp vụ nếu hệ thống chọn mô hình lưu trữ mềm.

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

  • Xoá hàng loạt contact.
  • Chính sách retention pháp lý chi tiết.
  • Xoá dữ liệu trong phone_registries.
  • Tự động xoá hoặc thay đổi listings đang gắn contact.

User Stories

  • broker, tôi muốn xoá hoặc lưu trữ contact không còn dùng, để danh sách CRM gọn và dễ quản lý.
  • broker, tôi muốn hệ thống cảnh báo khi contact đang gắn với listing, để tránh mất dữ liệu liên hệ quan trọng.
  • Backend, tôi muốn không xoá cứng contact đang có liên kết nghiệp vụ, để bảo toàn quan hệ dữ liệu.

Luồng chức năng

sequenceDiagram
    actor Broker
    participant App
    participant BE
    participant Contacts
    participant Listings

    Broker->>App: Chọn xoá hoặc lưu trữ contact
    App->>BE: Gửi yêu cầu
    BE->>Contacts: Kiểm tra quyền thao tác
    BE->>Listings: Kiểm tra listings liên quan
    alt Được phép lưu trữ
        BE->>Contacts: Chuyển contact sang archived
        BE-->>App: Báo thành công
    else Không được phép
        BE-->>App: Báo lý do không thể xoá
    end

Acceptance Criteria

  • AC-1: Broker chỉ có thể xoá hoặc lưu trữ contact trong phạm vi được phép.
  • AC-2: Contact đang gắn với listings phải được kiểm tra trước khi xoá/lưu trữ.
  • AC-3: Hệ thống không được xoá cứng contact nếu thao tác làm mất liên kết listing quan trọng.
  • AC-4: Contact đã lưu trữ không hiển thị trong danh sách mặc định.
  • AC-5: Hệ thống hiển thị lý do rõ ràng khi không thể xoá hoặc lưu trữ contact.
  • AC-6: Thao tác xoá/lưu trữ không xoá bản ghi phone_registries liên quan.

Quy tắc nghiệp vụ

  • Ưu tiên archive mềm cho contact đã từng được liên kết với listing.
  • Không xoá phone_registries khi xoá/lưu trữ contact.
  • Không tự động xoá listing khi contact bị lưu trữ.
  • Contact archived có thể bị ẩn khỏi danh sách mặc định nhưng vẫn có thể dùng để đọc lịch sử liên quan.

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

Entity nghiệp vụ:

  • Contact: bản ghi được xoá hoặc chuyển trạng thái lưu trữ.
  • Listing: bản ghi có thể đang tham chiếu contact qua contact_id.

Trạng thái user-facing:

  • active - contact đang dùng bình thường.
  • archived - contact đã được lưu trữ và ẩn khỏi danh sách mặc định.
  • blocked - thao tác xoá/lưu trữ bị chặn do rule nghiệp vụ.

Liên quan