Медіа
Stateless-блок для отримання медіа TU з партнерського API. Нічого не зберігає і не оновлює за таймером.
Контракт
MediaContext = 'chat' | 'mail'
MediaItem {
id
type: 'photo' | 'video' | 'audio'
previewUrl
url
sent?
seen?
}
MediaPage {
items: MediaItem[]
nextCursor?: {
photo?
video?
}
}getMedia(context, cursor?)викликає API поточного проєкту й повертаєMediaPage;- для Golden і Chathouse
nextCursorвідсутній; - для Prime фото й відео мають незалежні cursor; наступна сторінка завантажується тим самим методом.
Логіка
- Chat, mail або форма інвайта запитує медіа для потрібного контексту.
- Проєктний adapter виконує отримання медіа TU.
- Відповідь нормалізується до
MediaItem. - Вибрані IDs повертаються логіці відправлення або зберігаються в інвайті.
Проєкти
| Проєкт | Chat | Форма відповіді | |
|---|---|---|---|
| Golden | фото, відео | фото, до 2 | окремі списки без pagination |
| Chathouse | фото, відео | фото, відео | один список без pagination; є sent/seen |
| Prime | фото, відео, аудіо | фото, відео | фото/відео курсором; аудіо окремим списком |
Ліміти кількості вкладень і вимоги до листа перевіряє chat/mail або сендер, а не цей блок.
Chathouse перед відправленням перетворює вибраний catalog media id на id вкладення. Цей запит належить adapter-у відправлення.