api client refactor

This commit is contained in:
2025-12-17 18:01:47 +01:00
parent bab55955e1
commit 4177644b18
190 changed files with 6403 additions and 1624 deletions

View File

@@ -0,0 +1,35 @@
// Analytics metrics view model
// Represents metrics data for analytics
export class AnalyticsMetricsViewModel {
pageViews: number;
uniqueVisitors: number;
averageSessionDuration: number;
bounceRate: number;
constructor(data: { pageViews: number; uniqueVisitors: number; averageSessionDuration: number; bounceRate: number }) {
Object.assign(this, data);
}
/** UI-specific: Formatted page views */
get formattedPageViews(): string {
return this.pageViews.toLocaleString();
}
/** UI-specific: Formatted unique visitors */
get formattedUniqueVisitors(): string {
return this.uniqueVisitors.toLocaleString();
}
/** UI-specific: Formatted session duration */
get formattedSessionDuration(): string {
const minutes = Math.floor(this.averageSessionDuration / 60);
const seconds = Math.floor(this.averageSessionDuration % 60);
return `${minutes}:${seconds.toString().padStart(2, '0')}`;
}
/** UI-specific: Formatted bounce rate */
get formattedBounceRate(): string {
return `${this.bounceRate.toFixed(1)}%`;
}
}