feat: add header channel selector & adding channel modal menu
This commit is contained in:
139
lib/types/api.ts
139
lib/types/api.ts
@@ -238,79 +238,79 @@ export interface ViewsSnapshot {
|
||||
// Analytics
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
export interface AnalyticsOverview {
|
||||
totalPurchases: number;
|
||||
purchasesChange: number;
|
||||
totalFollowers: number;
|
||||
followersChange: number;
|
||||
averageCpf: number;
|
||||
cpfChange: number;
|
||||
averageCpm: number;
|
||||
cpmChange: number;
|
||||
topChannelsByCpf: {
|
||||
channel_id: string;
|
||||
channel_name: string;
|
||||
total_purchases: number;
|
||||
avg_cpf: number;
|
||||
}[];
|
||||
topCreativesByCpf: {
|
||||
creative_id: string;
|
||||
creative_name: string;
|
||||
total_subscriptions: number;
|
||||
avg_cpf: number;
|
||||
}[];
|
||||
}
|
||||
export type DateGrouping = "day" | "week" | "month" | "quarter" | "year";
|
||||
|
||||
export type GroupByPeriod = "day" | "week" | "month" | "quarter" | "year";
|
||||
|
||||
export interface AnalyticsCostsDataPoint {
|
||||
period: string; // ISO 8601 date (start of period)
|
||||
// Spending Analytics
|
||||
export interface SpendingDataPoint {
|
||||
period: string;
|
||||
cost: number;
|
||||
purchases_count: number;
|
||||
subscriptions: number;
|
||||
views: number;
|
||||
cpf: number | null;
|
||||
cpm: number | null;
|
||||
}
|
||||
|
||||
export interface AnalyticsCostsResponse {
|
||||
data: AnalyticsCostsDataPoint[];
|
||||
}
|
||||
|
||||
export interface CostsReport {
|
||||
totalCost: number;
|
||||
averageCost: number;
|
||||
periods: {
|
||||
date: string;
|
||||
total_cost: number;
|
||||
purchases_count: number;
|
||||
avg_cost: number;
|
||||
}[];
|
||||
}
|
||||
|
||||
export interface AnalyticsChannelData {
|
||||
channel_id: string;
|
||||
channel_name: string;
|
||||
purchases_count: number;
|
||||
export interface SpendingAnalytics {
|
||||
total_cost: number;
|
||||
total_subscriptions: number;
|
||||
avg_cpf: number;
|
||||
avg_cpm: number;
|
||||
total_views: number;
|
||||
avg_cpf: number | null;
|
||||
avg_cpm: number | null;
|
||||
chart_data: SpendingDataPoint[];
|
||||
}
|
||||
|
||||
export interface AnalyticsChannelsResponse {
|
||||
data: AnalyticsChannelData[];
|
||||
}
|
||||
|
||||
export interface AnalyticsCreativeData {
|
||||
// Placements Analytics
|
||||
export interface PlacementAnalytics {
|
||||
id: string;
|
||||
target_channel_id: string;
|
||||
target_channel_title: string;
|
||||
external_channel_id: string;
|
||||
external_channel_title: string;
|
||||
creative_id: string;
|
||||
creative_name: string;
|
||||
purchases_count: number;
|
||||
total_cost: number;
|
||||
total_subscriptions: number;
|
||||
avg_cpf: number;
|
||||
conversion_rate: number;
|
||||
placement_date: string;
|
||||
cost: number | null;
|
||||
subscriptions_count: number;
|
||||
views_count: number | null;
|
||||
cpf: number | null;
|
||||
cpm: number | null;
|
||||
}
|
||||
|
||||
export interface AnalyticsCreativesResponse {
|
||||
data: AnalyticsCreativeData[];
|
||||
export interface PlacementsAnalytics {
|
||||
placements: PlacementAnalytics[];
|
||||
}
|
||||
|
||||
// Creatives Analytics
|
||||
export interface CreativeAnalytics {
|
||||
id: string;
|
||||
name: string;
|
||||
placements_count: number;
|
||||
total_cost: number;
|
||||
total_subscriptions: number;
|
||||
total_views: number;
|
||||
avg_cpf: number | null;
|
||||
avg_cpm: number | null;
|
||||
}
|
||||
|
||||
export interface CreativesAnalytics {
|
||||
creatives: CreativeAnalytics[];
|
||||
}
|
||||
|
||||
// External Channels Analytics
|
||||
export interface ExternalChannelAnalytics {
|
||||
id: string;
|
||||
title: string;
|
||||
username: string | null;
|
||||
placements_count: number;
|
||||
total_cost: number;
|
||||
total_subscriptions: number;
|
||||
total_views: number;
|
||||
avg_cpf: number | null;
|
||||
avg_cpm: number | null;
|
||||
}
|
||||
|
||||
export interface ExternalChannelsAnalytics {
|
||||
external_channels: ExternalChannelAnalytics[];
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -369,22 +369,3 @@ export interface AnalyticsOverviewQueryParams {
|
||||
date_to?: string;
|
||||
}
|
||||
|
||||
export interface AnalyticsCostsQueryParams {
|
||||
target_channel_id?: string;
|
||||
date_from: string; // required
|
||||
date_to: string; // required
|
||||
group_by: GroupByPeriod;
|
||||
}
|
||||
|
||||
export interface AnalyticsChannelsQueryParams {
|
||||
target_channel_id?: string;
|
||||
date_from?: string;
|
||||
date_to?: string;
|
||||
type: "external" | "target";
|
||||
}
|
||||
|
||||
export interface AnalyticsCreativesQueryParams {
|
||||
target_channel_id?: string;
|
||||
date_from?: string;
|
||||
date_to?: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user