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
- Là 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ý.
- 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.
- Là 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á
endAcceptance 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_registriesliê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_registrieskhi 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 quacontact_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
- Phụ thuộc: contacts-create, contacts-list
- Ảnh hưởng: listing-crawl-external-sources