from django.utils.translation import gettext_lazy as _ from drf_spectacular.utils import OpenApiParameter from engine.vibes_auth.messaging.serializers import ( StaffInboxEventSerializer, ThreadOkResponseSerializer, ThreadReplyRequestSerializer, UserMessageRequestSerializer, UserMessageResponseSerializer, ) USER_MESSAGE_CONSUMER_SCHEMA = { "tags": [ "messaging", ], "type": "send", "summary": _("User messages entrypoint"), "description": _( "Anonymous or authenticated non-staff users send messages. Also supports action=ping." ), "request": UserMessageRequestSerializer, "responses": UserMessageResponseSerializer, } STAFF_INBOX_CONSUMER_SCHEMA = { "tags": [ "messaging", ], "type": "send", "summary": _("Staff inbox control"), "description": _( "Staff-only actions: list_open, assign, reply, close, ping. Unified event payloads are emitted." ), "request": StaffInboxEventSerializer, "responses": StaffInboxEventSerializer, } THREAD_CONSUMER_SCHEMA = { "tags": [ "messaging", ], "type": "send", "summary": _("Per-thread staff channel"), "description": _("Reply, close, and ping within a specific thread."), "parameters": [OpenApiParameter(name="thread_id")], "request": ThreadReplyRequestSerializer, "responses": ThreadOkResponseSerializer, }