// ============================================================================ // Demo Mock Data // ============================================================================ import type { Workspace, Project, Channel, Creative, Placement, PurchasePlanChannel, WorkspaceMember, Permission, SpendingAnalytics, CreativeAnalyticsItem, ChannelAnalyticsItem, OverviewAnalytics, } from "@/lib/types/api"; import { DEMO_WORKSPACE_ID, DEMO_USER } from "./constants"; // ============================================================================ // Workspace & User // ============================================================================ export const demoWorkspace: Workspace = { id: DEMO_WORKSPACE_ID, name: "Демо Workspace", }; export const demoMember: WorkspaceMember = { id: "demo-member-0000-0000-000000000001", user: { id: DEMO_USER.id, telegram_id: DEMO_USER.telegram_id, username: DEMO_USER.username, first_name: DEMO_USER.first_name, last_name: DEMO_USER.last_name, }, status: "active", permissions: [{ key: "admin_full" }], }; // ============================================================================ // Projects (Target Channels) // ============================================================================ export const demoProjects: Project[] = [ { id: "proj-0001-0000-0000-000000000001", telegram_id: -1001234567001, title: "Крипто Новости", username: "crypto_news_demo", status: "active", subscribers_count: 125000, purchase_invite_type_default: "public", }, { id: "proj-0002-0000-0000-000000000002", telegram_id: -1001234567002, title: "IT Вакансии", username: "it_jobs_demo", status: "active", subscribers_count: 89000, purchase_invite_type_default: "approval", }, { id: "proj-0003-0000-0000-000000000003", telegram_id: -1001234567003, title: "Стартапы и Бизнес", username: "startups_demo", status: "active", subscribers_count: 67000, purchase_invite_type_default: "public", }, ]; // ============================================================================ // Channels (External Channels for placements) // ============================================================================ export const demoChannels: Channel[] = [ { id: "chan-0001-0000-0000-000000000001", telegram_id: -1002345678001, title: "Технологии Будущего", username: "tech_future", description: "Новости о технологиях и инновациях", subscribers_count: 125000, }, { id: "chan-0002-0000-0000-000000000002", telegram_id: -1002345678002, title: "Инвестиции Pro", username: "invest_pro", description: "Аналитика и инвестиционные идеи", subscribers_count: 89000, }, { id: "chan-0003-0000-0000-000000000003", telegram_id: -1002345678003, title: "Программисты", username: "programmers_hub", description: "Сообщество разработчиков", subscribers_count: 156000, }, { id: "chan-0004-0000-0000-000000000004", telegram_id: -1002345678004, title: "Маркетинг Pro", username: "marketing_pro", description: "Digital маркетинг и реклама", subscribers_count: 67000, }, { id: "chan-0005-0000-0000-000000000005", telegram_id: -1002345678005, title: "Финансовая грамотность", username: "finance_edu", description: "Обучение финансам", subscribers_count: 234000, }, { id: "chan-0006-0000-0000-000000000006", telegram_id: -1002345678006, title: "Startup Daily", username: "startup_daily", description: "Ежедневные новости стартапов", subscribers_count: 45000, }, ]; // ============================================================================ // Creatives // ============================================================================ export const demoCreatives: Creative[] = [ { id: "crea-0001-0000-0000-000000000001", name: "Крипто - Основной", text: "🚀 Присоединяйтесь к лучшему крипто-каналу!\n\n💰 Ежедневные сигналы\n📊 Аналитика рынка\n🎯 Точные прогнозы\n\n{invite_link}", status: "active", placements_count: 12, project_id: "proj-0001-0000-0000-000000000001", project_channel_title: "Крипто Новости", created_at: "2024-11-15T10:00:00Z", }, { id: "crea-0002-0000-0000-000000000002", name: "Крипто - Агрессивный", text: "⚡️ СРОЧНО! Секретный канал для избранных!\n\n🔥 Закрытая информация\n💎 Альткоины x100\n🚀 Успей до памп!\n\n{invite_link}", status: "active", placements_count: 5, project_id: "proj-0001-0000-0000-000000000001", project_channel_title: "Крипто Новости", created_at: "2024-11-20T14:30:00Z", }, { id: "crea-0003-0000-0000-000000000003", name: "IT Jobs - Основной", text: "👨‍💻 Ищешь работу в IT?\n\n✅ Вакансии от топ-компаний\n✅ Удаленка и офис\n✅ Junior - Senior\n\nПодписывайся: {invite_link}", status: "active", placements_count: 8, project_id: "proj-0002-0000-0000-000000000002", project_channel_title: "IT Вакансии", created_at: "2024-10-01T09:00:00Z", }, { id: "crea-0004-0000-0000-000000000004", name: "Startups - Нетворкинг", text: "🤝 Нетворкинг для стартаперов\n\n🎯 Найди кофаундера\n💡 Обменяйся идеями\n🚀 Развивай проект\n\n{invite_link}", status: "active", placements_count: 6, project_id: "proj-0003-0000-0000-000000000003", project_channel_title: "Стартапы и Бизнес", created_at: "2024-12-01T16:00:00Z", }, { id: "crea-0005-0000-0000-000000000005", name: "IT Jobs - Тестовый", text: "🔥 Тестовый креатив для IT вакансий\n\n{invite_link}", status: "archived", placements_count: 2, project_id: "proj-0002-0000-0000-000000000002", project_channel_title: "IT Вакансии", created_at: "2024-09-15T11:00:00Z", }, ]; // ============================================================================ // Placements // ============================================================================ export const demoPlacements: Placement[] = [ { id: "plac-0001-0000-0000-000000000001", placement_date: "2024-12-20T12:00:00Z", cost: 5500, comment: "Отличное размещение", ad_post_url: "https://t.me/tech_future/1234", invite_link_type: "approval", invite_link: "https://t.me/+ABC123demo1", status: "active", subscriptions_count: 156, views_count: 8500, views_availability: "available", last_views_fetch_at: "2024-12-21T10:00:00Z", created_at: "2024-12-19T15:00:00Z", project_id: "proj-0001-0000-0000-000000000001", project_channel_title: "Крипто Новости", placement_channel_id: "chan-0001-0000-0000-000000000001", placement_channel_title: "Технологии Будущего", creative_id: "crea-0001-0000-0000-000000000001", creative_name: "Крипто - Основной", }, { id: "plac-0002-0000-0000-000000000002", placement_date: "2024-12-18T14:00:00Z", cost: 3200, comment: null, ad_post_url: "https://t.me/invest_pro/5678", invite_link_type: "approval", invite_link: "https://t.me/+ABC123demo2", status: "active", subscriptions_count: 89, views_count: 4200, views_availability: "available", last_views_fetch_at: "2024-12-20T08:00:00Z", created_at: "2024-12-17T10:00:00Z", project_id: "proj-0001-0000-0000-000000000001", project_channel_title: "Крипто Новости", placement_channel_id: "chan-0002-0000-0000-000000000002", placement_channel_title: "Инвестиции Pro", creative_id: "crea-0001-0000-0000-000000000001", creative_name: "Крипто - Основной", }, { id: "plac-0003-0000-0000-000000000003", placement_date: "2024-12-15T10:00:00Z", cost: 4800, comment: "Программисты - хорошая аудитория", ad_post_url: "https://t.me/programmers_hub/9012", invite_link_type: "public", invite_link: "https://t.me/+ABC123demo3", status: "active", subscriptions_count: 234, views_count: 12000, views_availability: "available", last_views_fetch_at: "2024-12-19T14:00:00Z", created_at: "2024-12-14T09:00:00Z", project_id: "proj-0002-0000-0000-000000000002", project_channel_title: "IT Вакансии", placement_channel_id: "chan-0003-0000-0000-000000000003", placement_channel_title: "Программисты", creative_id: "crea-0003-0000-0000-000000000003", creative_name: "IT Jobs - Основной", }, { id: "plac-0004-0000-0000-000000000004", placement_date: "2024-12-10T16:00:00Z", cost: 2500, comment: null, ad_post_url: "https://t.me/marketing_pro/3456", invite_link_type: "approval", invite_link: "https://t.me/+ABC123demo4", status: "active", subscriptions_count: 67, views_count: 3100, views_availability: "manual", last_views_fetch_at: "2024-12-12T11:00:00Z", created_at: "2024-12-09T14:00:00Z", project_id: "proj-0003-0000-0000-000000000003", project_channel_title: "Стартапы и Бизнес", placement_channel_id: "chan-0004-0000-0000-000000000004", placement_channel_title: "Маркетинг Pro", creative_id: "crea-0004-0000-0000-000000000004", creative_name: "Startups - Нетворкинг", }, { id: "plac-0005-0000-0000-000000000005", placement_date: "2024-12-05T11:00:00Z", cost: 6200, comment: "Финансовая аудитория", ad_post_url: "https://t.me/finance_edu/7890", invite_link_type: "approval", invite_link: "https://t.me/+ABC123demo5", status: "active", subscriptions_count: 312, views_count: 15600, views_availability: "available", last_views_fetch_at: "2024-12-08T09:00:00Z", created_at: "2024-12-04T10:00:00Z", project_id: "proj-0001-0000-0000-000000000001", project_channel_title: "Крипто Новости", placement_channel_id: "chan-0005-0000-0000-000000000005", placement_channel_title: "Финансовая грамотность", creative_id: "crea-0002-0000-0000-000000000002", creative_name: "Крипто - Агрессивный", }, { id: "plac-0006-0000-0000-000000000006", placement_date: "2024-11-28T13:00:00Z", cost: 1800, comment: null, ad_post_url: "https://t.me/startup_daily/2345", invite_link_type: "public", invite_link: "https://t.me/+ABC123demo6", status: "archived", subscriptions_count: 45, views_count: 2100, views_availability: "unavailable", last_views_fetch_at: null, created_at: "2024-11-27T15:00:00Z", project_id: "proj-0003-0000-0000-000000000003", project_channel_title: "Стартапы и Бизнес", placement_channel_id: "chan-0006-0000-0000-000000000006", placement_channel_title: "Startup Daily", creative_id: "crea-0004-0000-0000-000000000004", creative_name: "Startups - Нетворкинг", }, ]; // ============================================================================ // Purchase Plan Channels // ============================================================================ export const demoPurchasePlanChannels: Record = { "proj-0001-0000-0000-000000000001": [ { id: "plan-0001-0000-0000-000000000001", status: "completed", planned_cost: 5500, comment: "Основной канал", channel: { id: "chan-0001-0000-0000-000000000001", telegram_id: -1002345678001, title: "Технологии Будущего", username: "tech_future", }, }, { id: "plan-0002-0000-0000-000000000002", status: "completed", planned_cost: 3500, comment: null, channel: { id: "chan-0002-0000-0000-000000000002", telegram_id: -1002345678002, title: "Инвестиции Pro", username: "invest_pro", }, }, { id: "plan-0003-0000-0000-000000000003", status: "planned", planned_cost: 4000, comment: "На следующую неделю", channel: { id: "chan-0005-0000-0000-000000000005", telegram_id: -1002345678005, title: "Финансовая грамотность", username: "finance_edu", }, }, ], "proj-0002-0000-0000-000000000002": [ { id: "plan-0004-0000-0000-000000000004", status: "completed", planned_cost: 4800, comment: "IT аудитория", channel: { id: "chan-0003-0000-0000-000000000003", telegram_id: -1002345678003, title: "Программисты", username: "programmers_hub", }, }, { id: "plan-0005-0000-0000-000000000005", status: "planned", planned_cost: 3000, comment: null, channel: { id: "chan-0001-0000-0000-000000000001", telegram_id: -1002345678001, title: "Технологии Будущего", username: "tech_future", }, }, ], "proj-0003-0000-0000-000000000003": [ { id: "plan-0006-0000-0000-000000000006", status: "completed", planned_cost: 2500, comment: null, channel: { id: "chan-0004-0000-0000-000000000004", telegram_id: -1002345678004, title: "Маркетинг Pro", username: "marketing_pro", }, }, { id: "plan-0007-0000-0000-000000000007", status: "completed", planned_cost: 1800, comment: "Стартап аудитория", channel: { id: "chan-0006-0000-0000-000000000006", telegram_id: -1002345678006, title: "Startup Daily", username: "startup_daily", }, }, ], }; // ============================================================================ // Analytics Data // ============================================================================ export const demoSpendingAnalytics: SpendingAnalytics = { total_cost: 24000, total_subscriptions: 903, total_views: 45500, avg_cpf: 26.58, avg_cpm: 527.47, chart_data: [ { period: "2024-11", cost: 1800, subscriptions: 45, views: 2100, cpf: 40.0, cpm: 857.14, }, { period: "2024-12-05", cost: 6200, subscriptions: 312, views: 15600, cpf: 19.87, cpm: 397.44, }, { period: "2024-12-10", cost: 2500, subscriptions: 67, views: 3100, cpf: 37.31, cpm: 806.45, }, { period: "2024-12-15", cost: 4800, subscriptions: 234, views: 12000, cpf: 20.51, cpm: 400.0, }, { period: "2024-12-18", cost: 3200, subscriptions: 89, views: 4200, cpf: 35.96, cpm: 761.9, }, { period: "2024-12-20", cost: 5500, subscriptions: 156, views: 8500, cpf: 35.26, cpm: 647.06, }, ], }; export const demoCreativeAnalytics: CreativeAnalyticsItem[] = [ { id: "crea-0001-0000-0000-000000000001", name: "Крипто - Основной", placements_count: 12, total_cost: 8700, total_subscriptions: 245, total_views: 12700, avg_cpf: 35.51, avg_cpm: 685.04, }, { id: "crea-0002-0000-0000-000000000002", name: "Крипто - Агрессивный", placements_count: 5, total_cost: 6200, total_subscriptions: 312, total_views: 15600, avg_cpf: 19.87, avg_cpm: 397.44, }, { id: "crea-0003-0000-0000-000000000003", name: "IT Jobs - Основной", placements_count: 8, total_cost: 4800, total_subscriptions: 234, total_views: 12000, avg_cpf: 20.51, avg_cpm: 400.0, }, { id: "crea-0004-0000-0000-000000000004", name: "Startups - Нетворкинг", placements_count: 6, total_cost: 4300, total_subscriptions: 112, total_views: 5200, avg_cpf: 38.39, avg_cpm: 826.92, }, ]; export const demoChannelAnalytics: ChannelAnalyticsItem[] = [ { channel_id: "chan-0001-0000-0000-000000000001", channel_title: "Технологии Будущего", channel_username: "tech_future", placements_count: 3, total_cost: 5500, total_subscriptions: 156, total_views: 8500, avg_cps: 35.26, avg_cpm: 647.06, }, { channel_id: "chan-0002-0000-0000-000000000002", channel_title: "Инвестиции Pro", channel_username: "invest_pro", placements_count: 2, total_cost: 3200, total_subscriptions: 89, total_views: 4200, avg_cps: 35.96, avg_cpm: 761.9, }, { channel_id: "chan-0003-0000-0000-000000000003", channel_title: "Программисты", channel_username: "programmers_hub", placements_count: 4, total_cost: 4800, total_subscriptions: 234, total_views: 12000, avg_cps: 20.51, avg_cpm: 400.0, }, { channel_id: "chan-0005-0000-0000-000000000005", channel_title: "Финансовая грамотность", channel_username: "finance_edu", placements_count: 2, total_cost: 6200, total_subscriptions: 312, total_views: 15600, avg_cps: 19.87, avg_cpm: 397.44, }, { channel_id: "chan-0004-0000-0000-000000000004", channel_title: "Маркетинг Pro", channel_username: "marketing_pro", placements_count: 1, total_cost: 2500, total_subscriptions: 67, total_views: 3100, avg_cps: 37.31, avg_cpm: 806.45, }, { channel_id: "chan-0006-0000-0000-000000000006", channel_title: "Startup Daily", channel_username: "startup_daily", placements_count: 1, total_cost: 1800, total_subscriptions: 45, total_views: 2100, avg_cps: 40.0, avg_cpm: 857.14, }, ]; export const demoOverviewAnalytics: OverviewAnalytics = { total_cost: { value: 523400.5, delta_percent: 12.4 }, total_reach: { value: 380000, delta_percent: -8.1 }, placements_count: { value: 74, delta_percent: 5.7 }, subscriptions_count: { value: 14250, delta_percent: 18.2 }, avg_cpm: { value: 1376.06, delta_percent: 2.9 }, avg_cpf: { value: 36.74, delta_percent: -5.4 }, daily_stats: [ { date: "2024-06-01", cost: 18450, subscriptions: 420, subscriptions_delta: -15, cpf: 43.93 }, { date: "2024-06-02", cost: 21700, subscriptions: 505, subscriptions_delta: 85, cpf: 42.97 }, { date: "2024-06-03", cost: 15800, subscriptions: 380, subscriptions_delta: -125, cpf: 41.58 }, { date: "2024-06-04", cost: 26500, subscriptions: 640, subscriptions_delta: 260, cpf: 41.41 }, { date: "2024-06-05", cost: 30200, subscriptions: 715, subscriptions_delta: 75, cpf: 42.24 }, { date: "2024-06-06", cost: 18800, subscriptions: 455, subscriptions_delta: -260, cpf: 41.32 }, { date: "2024-06-07", cost: 22400, subscriptions: 520, subscriptions_delta: 65, cpf: 43.08 }, ], top_channels_by_cpf: [ { channel_id: "chan-0005-0000-0000-000000000005", title: "Финансовая грамотность", username: "finance_edu", cpf: 18.7, total_cost: 44200, subscriptions: 2365, }, { channel_id: "chan-0003-0000-0000-000000000003", title: "Программисты", username: "programmers_hub", cpf: 21.8, total_cost: 38900, subscriptions: 1785, }, { channel_id: "chan-0001-0000-0000-000000000001", title: "Технологии Будущего", username: "tech_future", cpf: 23.4, total_cost: 35500, subscriptions: 1517, }, { channel_id: "chan-0002-0000-0000-000000000002", title: "Инвестиции Pro", username: "invest_pro", cpf: 24.6, total_cost: 33100, subscriptions: 1346, }, { channel_id: "chan-0006-0000-0000-000000000006", title: "Startup Daily", username: "startup_daily", cpf: 25.2, total_cost: 28800, subscriptions: 1143, }, ], worst_channels_by_cpf: [ { channel_id: "chan-0010-0000-0000-000000000010", title: "Crypto Buzz", username: "cryptobuzz", cpf: 84.5, total_cost: 9900, subscriptions: 117, }, { channel_id: "chan-0009-0000-0000-000000000009", title: "Ads Unlimited", username: "ads_unlimited", cpf: 72.3, total_cost: 8200, subscriptions: 113, }, { channel_id: "chan-0008-0000-0000-000000000008", title: "News Mix", username: "newsmix", cpf: 66.2, total_cost: 11400, subscriptions: 172, }, { channel_id: "chan-0007-0000-0000-000000000007", title: "Random Talks", username: "randomtalks", cpf: 61.9, total_cost: 13400, subscriptions: 216, }, { channel_id: "chan-0004-0000-0000-000000000004", title: "Маркетинг Pro", username: "marketing_pro", cpf: 58.4, total_cost: 12700, subscriptions: 217, }, ], project_spending: [ { project_id: "proj-0001-0000-0000-000000000001", project_title: "Крипто Новости", project_username: "crypto_news_demo", total_cost: 244000, }, { project_id: "proj-0002-0000-0000-000000000002", project_title: "IT Вакансии", project_username: "it_jobs_demo", total_cost: 182400, }, { project_id: "proj-0003-0000-0000-000000000003", project_title: "Стартапы и Бизнес", project_username: "startups_demo", total_cost: 96900, }, ], };