Project

General

Profile

Actions

Front-Feature #333

open

Сущность Complaint

Added by Алексей Подшиблов 6 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
03/02/2026
Due date:
% Done:

0%

Estimated time:

Description

POST /ComplaintController/ComplaintController_createComplaint

Request Body:
json
{
  "targetId": "uuid",          ID объекта жалобы
  "targetType": "action",      action, user, comment
  "complaintType": "18+",      тип жалобы
  "description"?: "текст",      макс 1500
  "screenshots"?: ["url"]       макс 2 фото
}
Responses
{
  "data": {
    "complaint": {
      "complaintId": "3c955485-5ef2-47ea-a65f-d79ebf203f12",
      "complainantId": "3c955485-5ef2-47ea-a65f-d79ebf203f12",
      "targetId": "1d4293f8-269d-442d-b96b-952556c1b77c",
      "targetType": "action",
      "complaintType": "18+",
      "status": "pending",
      "description": "Пользователь распространяет 18+ контент",
      "screenshots": [
        "https://cdn.enot.ru/uploads/3c955485-5ef2-47ea-a65f-d79ebf203f12/1.jpg",
        "https://cdn.enot.ru/uploads/3c955485-5ef2-47ea-a65f-d79ebf203f12/2.jpg"
      ],
      "createdAt": "2026-03-02T12:00:00.000Z",
      "updatedAt": "2026-03-02T12:00:00.000Z"
    }
  },
  "status": 201
}

GET

ComplaintController/ComplaintController_getMyComplaints



Query Parameters (опциональны)

status?        = pending | resolved | rejected
targetType?    = action | user | comment
fromDate?      = 2024-01-01
toDate?        = 2024-12-31
sortField?     = createdAt | updatedAt | status
sortDirection? = ASC | DESC
limit?         = 20 (default)
page?          = 0 (default)
Response

{
  "data": {
    "items": [
      {
        "complaintId": "uuid",
        "targetId": "uuid",
        "targetType": "action",
        "complaintType": "18+",
        "status": "pending",
        "description": "текст",
        "screenshots": ["url"],
        "createdAt": "2024-01-01T12:00:00Z",
        "updatedAt": "2024-01-01T12:00:00Z"
      }
    ],
    "count": 42  
  }
}




export enum ComplaintStatus {
  PENDING = 'pending', // жалоба на рассмотрение
  RESOLVED = 'resolved', // жалоба решена
  REJECTED = 'rejected', // жалоба отклонена
}

export enum ComplaintSortField {
  CreatedAt = 'createdAt', // сортировка по дате создания
  UpdatedAt = 'updatedAt', // сортировка по дате обновления
  Status = 'status', // сортировка по статусу (pending/resolved/rejected)
}

No data to display

Actions

Also available in: Atom PDF