Listings - cập nhật tin đăng
Feature URL
Module
listing
Status
shipped
Priority
P0
Platforms
fe · be
AC progress
0 / 6
Last reviewed
2026-05-29
Mục tiêu
Cho phép owner cập nhật toàn bộ các trường mutable của listing để sửa nội dung, giá, hình ảnh, loại giao dịch hoặc chuyển trạng thái giữa nháp và active. Khi listing active sau cập nhật, hệ thống tính lại trust score.
Phạm vi
Trong phạm vi (In scope):
- Cập nhật listing qua
PUT /listings/{id}. - Replace toàn bộ các trường mutable:
title,description,price,status,listingTypes,imageUrls. - Chỉ owner được cập nhật listing của mình.
- Không cho owner cập nhật listing đang
BANNED. - Tính lại trust score khi kết quả cập nhật là
ACTIVE.
Ngoài phạm vi (Out of scope):
- Cập nhật property liên kết với listing.
- Partial update/PATCH.
- Gỡ ban listing bởi admin.
- Cập nhật hàng loạt nhiều listing.
User Stories
- Là owner, tôi muốn sửa nội dung listing, để thông tin đăng bán/cho thuê luôn chính xác.
- Là owner, tôi muốn publish tin nháp bằng cách đổi status sang
ACTIVE, để tin xuất hiện public. - Là hệ thống, tôi muốn tính lại trust score khi tin active thay đổi, để chất lượng tin được đánh giá lại.
Luồng chức năng
sequenceDiagram
actor Owner
participant App
participant BE
participant Listings
participant Trust as Trust Score
Owner->>App: Sửa thông tin listing
App->>BE: Gửi yêu cầu cập nhật listing
BE->>Listings: Kiểm tra owner và trạng thái
BE->>Listings: Replace mutable fields
alt Status sau cập nhật là ACTIVE
BE->>Trust: Tính lại trust score
end
BE-->>App: Trả listing sau cập nhậtAcceptance Criteria
- AC-1: Chỉ owner của listing mới được cập nhật listing.
- AC-2: Hệ thống từ chối cập nhật nếu listing không tồn tại.
- AC-3: Hệ thống từ chối cập nhật listing
BANNED. - AC-4: Payload cập nhật phải có đủ các trường mutable bắt buộc theo full replace.
- AC-5: Status cập nhật chỉ nhận
DRAFThoặcACTIVE. - AC-6: Nếu listing sau cập nhật là
ACTIVE, hệ thống phải tính lại trust score.
Quy tắc nghiệp vụ
- Update không thay đổi owner của listing.
- Update không thay đổi property qua endpoint listing.
pricephải là số dương.listingTypesnếu có chỉ nhậnSALEhoặcRENT.- Listing
BANNEDbị khóa hành chính, owner không thể tự publish lại.
Dữ liệu & Trạng thái
Entity nghiệp vụ:
Listing: bản ghi được owner cập nhật các trường mutable.
Trạng thái user-facing:
DRAFT- tin đang nháp sau cập nhật.ACTIVE- tin public sau cập nhật.BANNED- tin bị khóa, không được owner cập nhật.
Liên quan
- Phụ thuộc: listing-create, listing-list
- Ảnh hưởng: listing-list, masking-unlock