💬 Chat API (Direct Messages)

GET /api/chat/conversations

دریافت لیست مکالمات کاربر

Query Parameters:

پارامترنوعتوضیحات
UserIDstring (UUID)الزامی شناسه کاربر

Response (200 OK):

{
  "success": true,
  "conversations": [
    {
      "ConversationID": "uuid",
      "OtherUserID": "uuid",
      "LastMessage": {
        "Message": "آخرین پیام",
        "IsEdited": false,
        "CreatedAt": "2024-01-01T12:00:00"
      },
      "UnreadCount": 2,
      "LastMessageAt": "2024-01-01T12:00:00"
    }
  ]
}

GET /api/chat/conversations/{conversation_id}/messages

دریافت پیام‌های یک مکالمه

Query Parameters:

پارامترنوعتوضیحات
UserIDstring (UUID)الزامی شناسه کاربر
limitintegerاختیاری تعداد پیام‌ها (پیش‌فرض: 50)
offsetintegerاختیاری offset برای pagination (پیش‌فرض: 0)

Response (200 OK):

{
  "success": true,
  "messages": [
    {
      "MessageID": "uuid",
      "SenderID": "uuid",
      "ReceiverID": "uuid",
      "Message": "متن پیام",
      "MessageType": "text",
      "Status": "read",
      "IsEdited": true,
      "EditedAt": "2024-01-01T12:00:00",
      "CreatedAt": "2024-01-01T11:00:00"
    }
  ]
}

POST /api/chat/messages

ارسال پیام جدید

Request Body:

فیلدنوعتوضیحات
SenderIDstring (UUID)الزامی شناسه فرستنده
ReceiverIDstring (UUID)الزامی شناسه گیرنده
Messagestringالزامی متن پیام
MessageTypestringاختیاری نوع پیام (پیش‌فرض: text)

Request Example:

{
  "SenderID": "uuid",
  "ReceiverID": "uuid",
  "Message": "سلام!",
  "MessageType": "text"
}

Response (201 Created):

{
  "success": true,
  "message": {
    "MessageID": "uuid",
    "ConversationID": "uuid",
    "SenderID": "uuid",
    "ReceiverID": "uuid",
    "Message": "سلام!",
    "IsEdited": false,
    "EditedAt": null,
    "CreatedAt": "2024-01-01T12:00:00"
  }
}

PUT /api/chat/messages/{message_id}

ویرایش پیام

Request Body:

فیلدنوعتوضیحات
UserIDstring (UUID)الزامی شناسه کاربر (باید فرستنده پیام باشد)
Messagestringالزامی متن جدید پیام

Response (200 OK):

{
  "success": true,
  "message": {
    "MessageID": "uuid",
    "Message": "پیام ویرایش شده",
    "IsEdited": true,
    "EditedAt": "2024-01-01T12:05:00",
    "UpdatedAt": "2024-01-01T12:05:00"
  }
}

DELETE /api/chat/messages/{message_id}

حذف پیام

Request Body / Query:

فیلدنوعتوضیحات
UserIDstring (UUID)الزامی شناسه کاربر (باید فرستنده پیام باشد)

Response (200 OK):

{
  "success": true,
  "message": "Message deleted"
}

DELETE /api/chat/conversations/{conversation_id}

حذف مکالمه

Query Parameters:

پارامترنوعتوضیحات
UserIDstring (UUID)الزامی شناسه کاربر

Response (200 OK):

{
  "success": true,
  "message": "Conversation deleted"
}