// src/Webshop.Application/DTOs/Admin/AnalyticsDto.cs using System.Collections.Generic; namespace Webshop.Application.DTOs.Admin { /// /// Fasst alle relevanten Analysedaten und KPIs für den Admin-Bereich zusammen. /// public class AnalyticsDto { /// /// Die wichtigsten Kennzahlen (Key Performance Indicators). /// public KpiSummaryDto KpiSummary { get; set; } = new KpiSummaryDto(); /// /// Eine Liste von Datenpunkten für Umsatz-Charts (z.B. Umsatz pro Tag). /// public List SalesOverTime { get; set; } = new List(); /// /// Die Top 10 der meistverkauften Produkte im ausgewählten Zeitraum. /// public List TopPerformingProducts { get; set; } = new List(); /// /// Informationen zum aktuellen Lagerbestand. /// public InventoryStatusDto InventoryStatus { get; set; } = new InventoryStatusDto(); } /// /// Die wichtigsten Kennzahlen (Key Performance Indicators). /// public class KpiSummaryDto { /// /// Der Gesamtumsatz (netto) im ausgewählten Zeitraum. /// public decimal TotalRevenue { get; set; } /// /// Die Gesamtzahl der Bestellungen im ausgewählten Zeitraum. /// public int TotalOrders { get; set; } /// /// Die Gesamtzahl aller registrierten Kunden. /// public int TotalCustomers { get; set; } /// /// Die Anzahl der Neukunden, die sich im ausgewählten Zeitraum registriert haben. /// public int NewCustomersThisPeriod { get; set; } /// /// Der durchschnittliche Wert einer Bestellung im ausgewählten Zeitraum. /// public decimal AverageOrderValue { get; set; } } /// /// Ein Datenpunkt für Umsatz-Charts (z.B. Umsatz pro Tag). /// public class SalesDataPointDto { /// /// Das Datum des Datenpunkts im Format 'yyyy-MM-dd'. /// public string Date { get; set; } = string.Empty; /// /// Der an diesem Tag generierte Umsatz. /// public decimal Revenue { get; set; } } /// /// Repräsentiert ein gut verkauftes Produkt. /// public class TopProductDto { public Guid ProductId { get; set; } public string Name { get; set; } = string.Empty; public string Sku { get; set; } = string.Empty; /// /// Die Gesamtzahl der verkauften Einheiten im ausgewählten Zeitraum. /// public int UnitsSold { get; set; } /// /// Der Gesamtumsatz, der mit diesem Produkt im ausgewählten Zeitraum erzielt wurde. /// public decimal TotalRevenue { get; set; } } /// /// Informationen zum Lagerbestand. /// public class InventoryStatusDto { /// /// Die Anzahl der Produkte, deren Lagerbestand unter dem in den Einstellungen definierten Schwellenwert liegt. /// public int ProductsWithLowStock { get; set; } /// /// Der prozentuale Anteil der Produkte, die auf Lager sind (Menge > 0). /// public double OverallStockAvailabilityPercentage { get; set; } } }