feat: global ui & functional update
This commit is contained in:
@@ -113,14 +113,15 @@ export const demoApi = {
|
||||
}
|
||||
if (params?.placement_channel_id) {
|
||||
items = items.filter(
|
||||
(p) => p.placement_channel_id === params.placement_channel_id
|
||||
(p) => p.channel.id === params.placement_channel_id
|
||||
);
|
||||
}
|
||||
if (params?.creative_id) {
|
||||
items = items.filter((p) => p.creative_id === params.creative_id);
|
||||
}
|
||||
// Filter out cancelled/archived placements
|
||||
if (!params?.include_archived) {
|
||||
items = items.filter((p) => p.status === "active");
|
||||
items = items.filter((p) => p.status !== "Отмена" && p.status !== "Неактуально");
|
||||
}
|
||||
return Promise.resolve(paginate(items));
|
||||
},
|
||||
@@ -145,18 +146,18 @@ export const demoApi = {
|
||||
// Filter by project if specified
|
||||
if (params?.project_id) {
|
||||
const projectPlacements = demoPlacements.filter(
|
||||
(p) => p.project_id === params.project_id && p.status === "active"
|
||||
(p) => p.project_id === params.project_id && p.status !== "Отмена" && p.status !== "Неактуально"
|
||||
);
|
||||
const totalCost = projectPlacements.reduce(
|
||||
(sum, p) => sum + (p.cost || 0),
|
||||
(sum, p) => sum + (p.details?.cost?.value || 0),
|
||||
0
|
||||
);
|
||||
const totalSubs = projectPlacements.reduce(
|
||||
(sum, p) => sum + (p.subscriptions_count || 0),
|
||||
(sum, p) => sum + (p.placement_post?.subscriptions_count || 0),
|
||||
0
|
||||
);
|
||||
const totalViews = projectPlacements.reduce(
|
||||
(sum, p) => sum + (p.views_count || 0),
|
||||
(sum, p) => sum + (p.placement_post?.views_count || 0),
|
||||
0
|
||||
);
|
||||
|
||||
@@ -167,6 +168,7 @@ export const demoApi = {
|
||||
avg_cpf: totalSubs > 0 ? totalCost / totalSubs : null,
|
||||
avg_cpm: totalViews > 0 ? (totalCost / totalViews) * 1000 : null,
|
||||
chart_data: demoSpendingAnalytics.chart_data.slice(0, 3),
|
||||
placements_count: 12,
|
||||
} as SpendingAnalytics);
|
||||
}
|
||||
return Promise.resolve(demoSpendingAnalytics);
|
||||
@@ -187,7 +189,7 @@ export const demoApi = {
|
||||
const projectPlacementChannelIds = new Set(
|
||||
demoPlacements
|
||||
.filter((p) => p.project_id === params.project_id)
|
||||
.map((p) => p.placement_channel_id)
|
||||
.map((p) => p.channel.id)
|
||||
);
|
||||
items = items.filter((a) => projectPlacementChannelIds.has(a.channel_id));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user