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