Admin xem chi tiết property bất kỳ
Feature URL
Module
admin
Status
in-development
Priority
P1
Platforms
fe · be
AC progress
6 / 9
Last reviewed
2026-05-30
Mục tiêu
Cho phép admin xem đầy đủ thông tin một property bao gồm cả bản ghi INACTIVE và đã soft-delete, kể cả metadata ai xoá và khi nào. Detail này phục vụ vận hành nội bộ và là cơ sở để quyết định sửa hoặc xoá property đó.
Phạm vi
Trong phạm vi (In scope):
- Admin mở detail property từ danh sách
/admin/properties. - API
GET /api/v1/admin/properties/{id}trả fullAdminPropertyResponsebất kể status hay soft-delete. - Hiển thị đầy đủ: thông tin vật lý, pháp lý, owner (người tạo), listings liên kết, và metadata soft-delete.
- FE detail page hoặc drawer.
Ngoài phạm vi (Out of scope):
- Danh sách property, xem feature
admin-property-list-search. - Sửa property, xem feature
admin-property-edit. - Xoá property, xem feature
admin-property-delete.
User Stories
- Là admin, tôi muốn xem chi tiết property để xác minh thông tin trước khi xử lý.
- Là admin support, tôi muốn xem thông tin owner và listings liên kết để hỗ trợ đúng ngữ cảnh.
- Là admin kiểm duyệt, tôi muốn xem metadata soft-delete (ai xoá, khi nào) để hiểu lịch sử property.
Luồng chức năng
sequenceDiagram
actor Admin
participant Web
participant BE
participant DB
Admin->>Web: Chọn một property trong danh sách
Web->>BE: GET /api/v1/admin/properties/{id}
BE->>BE: Kiểm tra role admin
BE->>DB: Load property mọi status và deleted với JOIN FETCH deletedBy
alt Không tìm thấy
BE-->>Web: 404 Not Found
Web->>Admin: Báo property không tồn tại
else Thành công
BE->>DB: Load listings liên kết
BE-->>Web: AdminPropertyResponse
Web->>Admin: Render chi tiết property và metadata soft-delete
endAcceptance Criteria
- AC-1: Backend có
GET /api/v1/admin/properties/{id}, chỉ admin được gọi. - AC-2: Nếu property không tồn tại ở bất kỳ status nào, API trả 404 Not Found.
- AC-3: Response trả property bất kể status ACTIVE hay INACTIVE, kể cả đã soft-delete.
- AC-4: Response bọc
PropertyDetailResponseđầy đủ: thông tin vật lý, pháp lý (full detail), owner (createdBy), listings liên kết. - AC-5: Response thêm
deleted(boolean),deletedAt(timestamp),deletedByUserId(UUID) cho admin. - AC-6: Backend JOIN FETCH
deletedByđể không phát sinh thêm query khi đọcdeletedByUserId. - AC-7: FE cần detail page hoặc drawer cho
/admin/properties/{id}. - AC-8: FE hiển thị section soft-delete info (deletedAt, deletedByUserId) khi property đã xoá.
- AC-9: FE hiển thị CTA sửa/xoá phù hợp trên màn detail.
Quy tắc nghiệp vụ
- Chỉ admin được xem detail property admin.
- Admin thấy property ở mọi trạng thái; FE không được filter lại theo status.
- Legal document được trả ở dạng full detail (khác list summary) vì đây là màn admin.
- Detail là nguồn dữ liệu để quyết định action; mutation phải gọi endpoint sửa/xoá riêng.
Dữ liệu & Trạng thái
Entity nghiệp vụ:
Property: bất động sản nguồn dữ liệu chi tiết.AdminPropertyResponse: bọcPropertyDetailResponsevà thêmdeleted,deletedAt,deletedByUserId.PropertyDetailResponse: chi tiết property gồm vật lý, pháp lý, owner, listings.LegalDocumentResponse: pháp lý đầy đủ.ListingSummary: tóm tắt listings liên kết.
Trạng thái user-facing:
detail-loading— đang tải chi tiết.detail-ready— có dữ liệu property.detail-not-found— property không tồn tại.detail-error— lỗi tải chi tiết.
Liên quan
- Phụ thuộc: admin-property-list-search, properties-list
- Ảnh hưởng: admin-property-edit, admin-property-delete