217 lines
8.6 KiB
TypeScript
217 lines
8.6 KiB
TypeScript
import type { AuditItem, CommentItem, ContentItem, NotificationItem, Speaker, UserProfile } from './types';
|
||
|
||
export const demoCategories = [
|
||
'Новости',
|
||
'Статьи',
|
||
'Видео',
|
||
'Аудио',
|
||
'Графика',
|
||
'Мероприятия'
|
||
];
|
||
|
||
export const demoTags = [
|
||
'медиапроизводство',
|
||
'интервью',
|
||
'анонс',
|
||
'образование',
|
||
'редакция',
|
||
'архив'
|
||
];
|
||
|
||
export const demoContent: ContentItem[] = [
|
||
{
|
||
id: 'demo-news-1',
|
||
title: 'Демо-новость о запуске медиаплатформы',
|
||
lead: 'Публичная карточка показывает, как новости и статьи будут выглядеть в едином каталоге.',
|
||
body:
|
||
'Это демонстрационный материал без реальных персональных данных, подразделений и брендовых материалов. Он нужен только для проверки интерфейса, поиска, фильтров и жизненного цикла публикации.',
|
||
type: 'news',
|
||
category: 'Новости',
|
||
tags: ['медиапроизводство', 'анонс'],
|
||
author: 'Демо-редакция',
|
||
publishedAt: '2026-06-04',
|
||
visibility: 'Публично',
|
||
status: 'Опубликовано',
|
||
views: 1240,
|
||
imageTone: 'from-university-700 via-university-500 to-sky-300'
|
||
},
|
||
{
|
||
id: 'demo-video-1',
|
||
title: 'Демо-видео: открытая лекция',
|
||
lead: 'Видеоматериал с метаданными, статусом проверки, категорией и тегами.',
|
||
body:
|
||
'В реальной системе здесь будет предпросмотр видео, CDN-ссылка, история модерации и аналитика просмотров. В прототипе используется безопасная заглушка.',
|
||
type: 'video',
|
||
category: 'Видео',
|
||
tags: ['образование', 'архив'],
|
||
author: 'Демо-медиагруппа',
|
||
publishedAt: '2026-06-09',
|
||
duration: '18:40',
|
||
visibility: 'После входа',
|
||
status: 'На проверке',
|
||
views: 382,
|
||
imageTone: 'from-indigo-700 via-university-800 to-cyan-500'
|
||
},
|
||
{
|
||
id: 'demo-audio-1',
|
||
title: 'Демо-аудио: выпуск университетского радио',
|
||
lead: 'Аудиоконтент хранится в медиатеке и связывается с публикациями, авторами и тегами.',
|
||
body:
|
||
'Этот пример показывает карточку аудио без использования реального названия передачи или записи. Права доступа и публикация управляются через роли.',
|
||
type: 'audio',
|
||
category: 'Аудио',
|
||
tags: ['интервью', 'редакция'],
|
||
author: 'Демо-редактор',
|
||
publishedAt: '2026-06-11',
|
||
duration: '32:10',
|
||
visibility: 'Публично',
|
||
status: 'Опубликовано',
|
||
views: 715,
|
||
imageTone: 'from-blue-950 via-blue-700 to-emerald-300'
|
||
},
|
||
{
|
||
id: 'demo-graphic-1',
|
||
title: 'Демо-графика: афиша редакционного события',
|
||
lead: 'Графические материалы можно фильтровать по типу, дате, категории и тегам.',
|
||
body:
|
||
'Заглушка демонстрирует графический материал без копирования фотографий, логотипов или брендовых элементов сторонних сайтов.',
|
||
type: 'graphic',
|
||
category: 'Графика',
|
||
tags: ['анонс', 'редакция'],
|
||
author: 'Демо-дизайнер',
|
||
publishedAt: '2026-06-13',
|
||
visibility: 'По роли',
|
||
status: 'На модерации',
|
||
views: 96,
|
||
imageTone: 'from-sky-400 via-blue-600 to-slate-900'
|
||
},
|
||
{
|
||
id: 'demo-event-1',
|
||
title: 'Демо-анонс медиавстречи со спикером',
|
||
lead: 'Мероприятия показаны как тип медиаконтента до подтверждения отдельной сущности Event.',
|
||
body:
|
||
'В ТЗ мероприятия указаны в пользовательских функциях, но не выделены в таблице информационных объектов. Поэтому в первом прототипе они представлены как анонсы контента.',
|
||
type: 'event',
|
||
category: 'Мероприятия',
|
||
tags: ['анонс', 'интервью'],
|
||
author: 'Демо-менеджер',
|
||
publishedAt: '2026-06-17',
|
||
visibility: 'Публично',
|
||
status: 'Черновик',
|
||
views: 45,
|
||
imageTone: 'from-university-900 via-violet-700 to-orange-300'
|
||
},
|
||
{
|
||
id: 'demo-article-1',
|
||
title: 'Демо-статья о жизненном цикле материала',
|
||
lead: 'Публикация проходит этапы: черновик, модерация, проверка, публикация, архив.',
|
||
body:
|
||
'Материал показывает администраторские сценарии, очереди проверки, журнал действий и ограничения видимости.',
|
||
type: 'article',
|
||
category: 'Статьи',
|
||
tags: ['медиапроизводство', 'архив'],
|
||
author: 'Демо-автор',
|
||
publishedAt: '2026-06-20',
|
||
visibility: 'После входа',
|
||
status: 'Архив',
|
||
views: 531,
|
||
imageTone: 'from-slate-900 via-university-800 to-sky-200'
|
||
}
|
||
];
|
||
|
||
export const demoSpeakers: Speaker[] = [
|
||
{
|
||
id: 'demo-speaker-1',
|
||
name: 'Демо-спикер 01',
|
||
role: 'Приглашенный эксперт',
|
||
topics: ['медиапроизводство', 'образование'],
|
||
materials: 8,
|
||
subscribers: 132
|
||
},
|
||
{
|
||
id: 'demo-speaker-2',
|
||
name: 'Демо-спикер 02',
|
||
role: 'Участник редакционного события',
|
||
topics: ['интервью', 'анонс'],
|
||
materials: 5,
|
||
subscribers: 74
|
||
},
|
||
{
|
||
id: 'demo-speaker-3',
|
||
name: 'Демо-спикер 03',
|
||
role: 'Автор образовательных материалов',
|
||
topics: ['архив', 'редакция'],
|
||
materials: 12,
|
||
subscribers: 205
|
||
}
|
||
];
|
||
|
||
export const demoUser: UserProfile = {
|
||
id: 'demo-user-1',
|
||
name: 'Демо-администратор',
|
||
login: 'demo_admin',
|
||
roles: ['администратор', 'редактор'],
|
||
subscriptions: ['Новости', 'Демо-спикер 01', 'медиапроизводство']
|
||
};
|
||
|
||
export const demoNotifications: NotificationItem[] = [
|
||
{
|
||
id: 'demo-notification-1',
|
||
title: 'Новый материал по подписке',
|
||
description: 'В категории «Новости» появился демонстрационный материал.',
|
||
read: false,
|
||
createdAt: '2026-06-13 10:20'
|
||
},
|
||
{
|
||
id: 'demo-notification-2',
|
||
title: 'Материал ожидает проверки',
|
||
description: 'Демо-видео находится на этапе проверки перед публикацией.',
|
||
read: true,
|
||
createdAt: '2026-06-12 16:45'
|
||
}
|
||
];
|
||
|
||
export const demoComments: CommentItem[] = [
|
||
{
|
||
id: 'demo-comment-1',
|
||
author: 'Демо-пользователь',
|
||
text: 'Комментарий доступен только авторизованным пользователям и может проходить модерацию.',
|
||
createdAt: '2026-06-13 12:00'
|
||
}
|
||
];
|
||
|
||
export const demoAudit: AuditItem[] = [
|
||
{
|
||
id: 'demo-audit-1',
|
||
actor: 'Демо-администратор',
|
||
action: 'изменил статус',
|
||
target: 'Демо-видео: открытая лекция',
|
||
createdAt: '2026-06-13 11:10'
|
||
},
|
||
{
|
||
id: 'demo-audit-2',
|
||
actor: 'Демо-редактор',
|
||
action: 'создал черновик',
|
||
target: 'Демо-анонс медиавстречи со спикером',
|
||
createdAt: '2026-06-12 15:35'
|
||
}
|
||
];
|
||
|
||
export const demoUsers: UserProfile[] = [
|
||
demoUser,
|
||
{
|
||
id: 'demo-user-2',
|
||
name: 'Демо-редактор',
|
||
login: 'demo_editor',
|
||
roles: ['редактор'],
|
||
subscriptions: ['Видео']
|
||
},
|
||
{
|
||
id: 'demo-user-3',
|
||
name: 'Демо-пользователь',
|
||
login: 'demo_user',
|
||
roles: ['пользователь'],
|
||
subscriptions: ['Аудио', 'Демо-спикер 03']
|
||
}
|
||
];
|