import { Purchase, PurchaseDetail, Subscription, ViewsSnapshot, } from "@/lib/types/api"; import { mockTargetChannels } from "./channels"; import { mockExternalChannels } from "./external-channels"; import { mockCreatives } from "./creatives"; // ============================================================================ // Mock Purchases Data // ============================================================================ export const mockPurchases: Purchase[] = [ { id: "p1", target_channel_id: "tc1", external_channel_id: "ec1", creative_id: "cr1", scheduled_date: "2024-03-15T10:00:00.000Z", actual_date: "2024-03-15T11:30:00.000Z", cost: 5000, comment: "Тестовая закупка на утро", post_link: "https://t.me/marketing_pro/1234", invite_link: "https://t.me/+AbCdEfGhIjKlMnOp", invite_link_type: "public", is_archived: false, created_at: "2024-03-14T15:00:00.000Z", updated_at: "2024-03-15T11:30:00.000Z", target_channel: mockTargetChannels[0], external_channel: mockExternalChannels[0], creative: mockCreatives[0], subscriptions_count: 125, views_count: 12500, cpf: 40.0, cpm: 400.0, conversion_rate: 1.0, }, { id: "p2", target_channel_id: "tc1", external_channel_id: "ec2", creative_id: "cr2", scheduled_date: "2024-03-18T14:00:00.000Z", actual_date: "2024-03-18T14:15:00.000Z", cost: 12000, comment: "Большой канал, ожидаем хороших результатов", post_link: "https://t.me/business_startups/5678", invite_link: "https://t.me/+QrStUvWxYzAbCdEf", invite_link_type: "public", is_archived: false, created_at: "2024-03-17T10:00:00.000Z", updated_at: "2024-03-18T14:15:00.000Z", target_channel: mockTargetChannels[0], external_channel: mockExternalChannels[1], creative: mockCreatives[1], subscriptions_count: 210, views_count: 28000, cpf: 57.1, cpm: 428.6, conversion_rate: 0.75, }, { id: "p3", target_channel_id: "tc2", external_channel_id: "ec3", creative_id: "cr3", scheduled_date: "2024-03-20T16:00:00.000Z", actual_date: null, cost: 3500, comment: null, post_link: "https://t.me/it_tech_news/9101", invite_link: "https://t.me/+GhIjKlMnOpQrStUv", invite_link_type: "private", is_archived: false, created_at: "2024-03-19T12:00:00.000Z", updated_at: "2024-03-19T12:00:00.000Z", target_channel: mockTargetChannels[1], external_channel: mockExternalChannels[2], creative: mockCreatives[2], subscriptions_count: 85, views_count: 8500, cpf: 41.2, cpm: 411.8, conversion_rate: 1.0, }, { id: "p4", target_channel_id: "tc1", external_channel_id: "ec5", creative_id: "cr1", scheduled_date: "2024-03-22T12:00:00.000Z", actual_date: null, cost: 4500, comment: "Повторная закупка в том же канале", post_link: null, invite_link: "https://t.me/+WxYzAbCdEfGhIjKl", invite_link_type: "public", is_archived: false, created_at: "2024-03-21T09:00:00.000Z", updated_at: "2024-03-21T09:00:00.000Z", target_channel: mockTargetChannels[0], external_channel: mockExternalChannels[4], creative: mockCreatives[0], subscriptions_count: 95, views_count: null, cpf: 47.4, cpm: null, conversion_rate: null, }, { id: "p5", target_channel_id: "tc1", external_channel_id: "ec1", creative_id: "cr1", scheduled_date: "2024-02-10T10:00:00.000Z", actual_date: "2024-02-10T10:30:00.000Z", cost: 5500, comment: "Старая закупка для истории", post_link: "https://t.me/marketing_pro/1100", invite_link: "https://t.me/+OldInviteLink123", invite_link_type: "public", is_archived: true, created_at: "2024-02-09T15:00:00.000Z", updated_at: "2024-02-20T10:00:00.000Z", target_channel: mockTargetChannels[0], external_channel: mockExternalChannels[0], creative: mockCreatives[0], subscriptions_count: 140, views_count: 15000, cpf: 39.3, cpm: 366.7, conversion_rate: 0.93, }, ]; // Mock Subscriptions export const mockSubscriptions: Subscription[] = [ { id: "s1", purchase_id: "p1", telegram_user_id: 111111111, user_first_name: "Иван", user_last_name: "Петров", user_username: "user1", subscribed_at: "2024-03-15T11:35:00.000Z", is_active: true, event_type: "chat_member", }, { id: "s2", purchase_id: "p1", telegram_user_id: 222222222, user_first_name: "Мария", user_last_name: "Сидорова", user_username: "user2", subscribed_at: "2024-03-15T11:40:00.000Z", is_active: true, event_type: "chat_member", }, { id: "s3", purchase_id: "p1", telegram_user_id: 333333333, user_first_name: "Алексей", user_last_name: null, user_username: null, subscribed_at: "2024-03-15T12:00:00.000Z", is_active: false, event_type: "join_request", }, { id: "s4", purchase_id: "p2", telegram_user_id: 444444444, user_first_name: "Елена", user_last_name: "Кузнецова", user_username: "user4", subscribed_at: "2024-03-18T14:20:00.000Z", is_active: true, event_type: "chat_member", }, { id: "s5", purchase_id: "p2", telegram_user_id: 555555555, user_first_name: "Дмитрий", user_last_name: "Смирнов", user_username: "user5", subscribed_at: "2024-03-18T14:25:00.000Z", is_active: true, event_type: "chat_member", }, ]; // Mock Views Snapshots export const mockViewsSnapshots: ViewsSnapshot[] = [ { id: "v1", purchase_id: "p1", views: 5000, fetched_at: "2024-03-15T12:00:00.000Z", }, { id: "v2", purchase_id: "p1", views: 8500, fetched_at: "2024-03-15T18:00:00.000Z", }, { id: "v3", purchase_id: "p1", views: 10200, fetched_at: "2024-03-16T09:00:00.000Z", }, { id: "v4", purchase_id: "p1", views: 11800, fetched_at: "2024-03-16T18:00:00.000Z", }, { id: "v5", purchase_id: "p1", views: 12500, fetched_at: "2024-03-17T12:00:00.000Z", }, { id: "v6", purchase_id: "p2", views: 15000, fetched_at: "2024-03-18T15:00:00.000Z", }, { id: "v7", purchase_id: "p2", views: 22000, fetched_at: "2024-03-18T20:00:00.000Z", }, { id: "v8", purchase_id: "p2", views: 26500, fetched_at: "2024-03-19T09:00:00.000Z", }, { id: "v9", purchase_id: "p2", views: 28000, fetched_at: "2024-03-19T18:00:00.000Z", }, ]; export const getMockPurchaseDetail = (id: string): PurchaseDetail | null => { const purchase = mockPurchases.find((p) => p.id === id); if (!purchase) return null; return { ...purchase, subscriptions: mockSubscriptions.filter((s) => s.purchase_id === id), views_history: mockViewsSnapshots.filter((v) => v.purchase_id === id), }; };