application_chat.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: application_chat.py
  6. @date:2025/6/10 13:54
  7. @desc:
  8. """
  9. from django.utils.translation import gettext_lazy as _
  10. from drf_spectacular.types import OpenApiTypes
  11. from drf_spectacular.utils import OpenApiParameter
  12. from application.serializers.application_chat import ApplicationChatQuerySerializers, \
  13. ApplicationChatResponseSerializers, ApplicationChatRecordExportRequest
  14. from common.mixins.api_mixin import APIMixin
  15. from common.result import ResultSerializer, ResultPageSerializer
  16. class ApplicationChatListResponseSerializers(ResultSerializer):
  17. def get_data(self):
  18. return ApplicationChatResponseSerializers(many=True)
  19. class ApplicationChatPageResponseSerializers(ResultPageSerializer):
  20. def get_data(self):
  21. return ApplicationChatResponseSerializers(many=True)
  22. class ApplicationChatQueryAPI(APIMixin):
  23. @staticmethod
  24. def get_request():
  25. return ApplicationChatQuerySerializers
  26. @staticmethod
  27. def get_parameters():
  28. return [
  29. OpenApiParameter(
  30. name="workspace_id",
  31. description="工作空间id",
  32. type=OpenApiTypes.STR,
  33. location='path',
  34. required=True,
  35. ),
  36. OpenApiParameter(
  37. name="application_id",
  38. description="application ID",
  39. type=OpenApiTypes.STR,
  40. location='path',
  41. required=True,
  42. ), OpenApiParameter(
  43. name="start_time",
  44. description="start Time",
  45. type=OpenApiTypes.STR,
  46. required=True,
  47. ),
  48. OpenApiParameter(
  49. name="end_time",
  50. description="end Time",
  51. type=OpenApiTypes.STR,
  52. required=True,
  53. ),
  54. OpenApiParameter(
  55. name="abstract",
  56. description="summary",
  57. type=OpenApiTypes.STR,
  58. required=False,
  59. ),
  60. OpenApiParameter(
  61. name="username",
  62. description="username",
  63. type=OpenApiTypes.STR,
  64. required=False,
  65. ),
  66. OpenApiParameter(
  67. name="min_star",
  68. description=_("Minimum number of likes"),
  69. type=OpenApiTypes.INT,
  70. required=False,
  71. ),
  72. OpenApiParameter(
  73. name="min_trample",
  74. description=_("Minimum number of clicks"),
  75. type=OpenApiTypes.INT,
  76. required=False,
  77. ),
  78. OpenApiParameter(
  79. name="comparer",
  80. description=_("Comparator"),
  81. type=OpenApiTypes.STR,
  82. required=False,
  83. ),
  84. ]
  85. @staticmethod
  86. def get_response():
  87. return ApplicationChatListResponseSerializers
  88. class ApplicationChatQueryPageAPI(APIMixin):
  89. @staticmethod
  90. def get_request():
  91. return ApplicationChatQueryAPI.get_request()
  92. @staticmethod
  93. def get_parameters():
  94. return [
  95. *ApplicationChatQueryAPI.get_parameters(),
  96. OpenApiParameter(
  97. name="current_page",
  98. description=_("Current page"),
  99. type=OpenApiTypes.INT,
  100. location='path',
  101. required=True,
  102. ),
  103. OpenApiParameter(
  104. name="page_size",
  105. description=_("Page size"),
  106. type=OpenApiTypes.INT,
  107. location='path',
  108. required=True,
  109. ),
  110. ]
  111. @staticmethod
  112. def get_response():
  113. return ApplicationChatPageResponseSerializers
  114. class ApplicationChatExportAPI(APIMixin):
  115. @staticmethod
  116. def get_request():
  117. return ApplicationChatRecordExportRequest
  118. @staticmethod
  119. def get_parameters():
  120. return ApplicationChatQueryAPI.get_parameters()
  121. @staticmethod
  122. def get_response():
  123. return None