tu-media-service

TUMediaService

Спільний модуль family-application-api для керування chat/mail медіа TU.

Задача

  1. Тримати єдине frontend API для всіх Family.
  2. Віддавати фото, відео та доступне аудіо окремо для chat і mail.
  3. Показувати нормалізований статус медіа.
  4. Завантажувати, видаляти або приховувати медіа.
  5. Передавати операцію у FamilyTUMediaService відповідної Family.

API

ОпераціяEndpoint
1Список медіа TU`GET /tus/{tuId}/media?channel={chat
2Завантажити медіаPOST /tus/{tuId}/media
3Видалити або приховати медіаDELETE /tus/{tuId}/media/{mediaId}?channel={channel}&type={type}
4Повторно відправити на модераціюPOST /tus/{tuId}/media/{mediaId}/moderation?type={type}

Upload приймає channel, type і файл. Файл передається через HTTP, а не в RMQ payload.

MediaItem

TODO: перевірити реальні response-формати всіх Family і окремо спроєктувати остаточні поля MediaItem.

type MediaItem = {
  externalId: string;
  type: 'photo' | 'video' | 'audio';
  channels: Array<'chat' | 'mail'>;
  status: 'approved' | 'moderation' | 'declined';
  processing: boolean;
  url: string | null;
  previewUrl: string | null;
  partnerStatus: string | number | boolean | null;
  actions: {
    delete: boolean;
    resubmitModeration: boolean;
  };
};

Frontend не визначає правила за назвою Family. Доступні кнопки беруться з actions.

Зв’язки