Загрузка приложения

IProductReview

Физическое объявление TypeScript из стартового проекта Nuxt со связанными типами и комментариями к полям.

IProductReview

Отзыв о товаре, автор, вложения и состояние обсуждения.

app/interfaces/orionplace/products/IProductFeedbackApi.ts
TypeScript
export interface IProductReview extends IProductFeedback {
  // Текст отзыва или ответа.
  text: string;
  // Оценка товара от 1 до 5 звёзд. 0 — у ответа, который не оценивает товар,
  // или у старого отзыва, сохранённого без звёзд.
  rating: number;
  // Автор отзыва или ответа.
  user: IProductFeedbackUser;
  // Состояние отзыва: `int` — `EProductFeedbackStatus.PENDING` (ожидает
  // проверки), `EProductFeedbackStatus.APROOVED` (одобрен) или
  // `EProductFeedbackStatus.DENIED` (отклонён); `text` — подпись.
  status: {
    // Код статуса отзыва: `EProductFeedbackStatus.PENDING` (ожидает модерации),
    // `EProductFeedbackStatus.APROOVED` (одобрен) или
    // `EProductFeedbackStatus.DENIED` (отклонён).
    int: EProductFeedbackStatus;
    // Текст отзыва или ответа.
    text: string;
  };
  // Дата и время создания.
  date_created: IApiDateTime;
  // Количество лайков.
  total_c_likes: number;
  // Количество дизлайков.
  total_c_dislikes: number;
  // A root review: approved replies in its whole discussion; a reply: its approved direct replies.
  // Количество одобренных ответов. Для первого отзыва — все ответы в его
  // обсуждении. Для ответа — только ответы непосредственно на него.
  total_c_approved_replies: number;
  // Approved direct replies in this store group: the list reply_of_parent opens.
  // Одобренные прямые ответы в этой группе магазинов — столько записей вернёт
  // `filters.reply_of_parent` с ID этого отзыва. Показывайте число на кнопке
  // ответов; `total_c_approved_replies` корневого отзыва считает всё
  // обсуждение.
  total_c_approved_direct_replies?: number;
  // Количество всех ответов, включая ожидающие проверки и отклонённые. Поэтому
  // число может быть больше длины `replies`. Для первого отзыва — все ответы в
  // его обсуждении. Для ответа — только ответы непосредственно на него.
  total_c_replies: number;
  // До пяти фотографий, прикреплённых к этому отзыву.
  images: IProductFeedbackImage[];
  // Количество изображений, прикреплённых к этому отзыву.
  c_images: number;
  // `true` — покупатель поставил лайк; `false` — дизлайк; `null` — не оценивал
  // отзыв. Для гостя поле отсутствует.
  user_like?: boolean | null;
  // `true` — покупатель уже ответил непосредственно на этот отзыв или ответ;
  // `false` — ещё не ответил. Учитывается и ответ, который ожидает проверки или
  // отклонён. Для гостя поле отсутствует.
  my_reply_exist?: boolean;
  // Одобренные ответы. В `products_feedbacks_mine_get` приходят автоматически;
  // в `products_view_feedbacks_feedback_get` — при переданном `filters.id`.
  replies?: IProductReview[];
  // Связь с обсуждением: ID первого отзыва и непосредственного родителя. Для
  // корневого отзыва оба значения равны `null`.
  reply_info: {
    // ID первого отзыва в обсуждении; `null` для корневого отзыва.
    main_reply: number | null;
    // ID отзыва или ответа, на который непосредственно отвечает этот ответ;
    // `null` для корневого отзыва.
    reply_to: number | null;
  };
  // Данные товара или `null`. Поле отсутствует при переданном
  // `filters.reply_of_parent`.
  product?: IProduct | null;
}