mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-07 18:04:59 +03:00
Новый bounded-context app hub_platform.support (ADR-HUB-0022, SPEC-HUB-0011). - ProductSupportContract: версионированный контракт идентификации клиента поддержки (code <product>.support.v<major>, статусы DRAFT/ACTIVE/DEPRECATED/ DISABLED, schema/mapping/operator_ui/ai_context/search/sensitive JSON). - SupportIdentitySnapshot: проверенный снимок identity (subject_key обязателен, raw token не хранится — только хэш jti; исторический снимок диалога). - Регистрация app в INSTALLED_APPS и префикс /api/v1/support/ (endpoints далее). - clean() проверяет формат code, версию и принадлежность продукта организации.
20 lines
853 B
Python
20 lines
853 B
Python
from django.contrib import admin
|
|
|
|
from hub_platform.support.models import ProductSupportContract, SupportIdentitySnapshot
|
|
|
|
|
|
@admin.register(ProductSupportContract)
|
|
class ProductSupportContractAdmin(admin.ModelAdmin):
|
|
list_display = ("code", "version", "product", "organization", "status", "updated_at")
|
|
list_filter = ("status", "organization")
|
|
search_fields = ("code", "product__code", "product__name")
|
|
filter_horizontal = ("allowed_channels",)
|
|
|
|
|
|
@admin.register(SupportIdentitySnapshot)
|
|
class SupportIdentitySnapshotAdmin(admin.ModelAdmin):
|
|
list_display = ("subject_key", "product", "contract_code", "display_name", "verified_at")
|
|
list_filter = ("product",)
|
|
search_fields = ("subject_key", "display_name", "display_email", "search_text")
|
|
readonly_fields = ("verified_at", "created_at", "payload_json", "token_jti_hash")
|