Bỏ qua nội dung

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ả full AdminPropertyResponse bấ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

  • admin, tôi muốn xem chi tiết property để xác minh thông tin trước khi xử lý.
  • admin support, tôi muốn xem thông tin owner và listings liên kết để hỗ trợ đúng ngữ cảnh.
  • 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
    end

Acceptance 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 đọc deletedByUserId.
  • 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ọc PropertyDetailResponse và thêm deleted, 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