1
0
forked from mixa/67
Files
67/apps/web/src/demo-data.ts
2026-06-15 00:20:48 +03:00

217 lines
8.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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']
}
];