import { IsOptional, IsDateString, IsEnum } from 'class-validator'; export enum DashboardPeriod { DAY = 'day', WEEK = 'week', MONTH = 'month', YEAR = 'year', } export class DashboardQueryDto { @IsOptional() @IsDateString() startDate?: string; @IsOptional() @IsDateString() endDate?: string; @IsOptional() @IsEnum(DashboardPeriod) period?: DashboardPeriod; } export interface DashboardMetrics { users: { total: number; mau: number; dau: number; newThisPeriod: number; }; stores: { total: number; activeThisPeriod: number; }; videos: { total: number; processedThisPeriod: number; averageProcessingTime: number; }; revenue: { total: number; thisPeriod: number; byPackage: { packageId: string; name: string; amount: number }[]; }; cogs: { total: number; thisPeriod: number; byProvider: { providerId: string; name: string; cost: number }[]; }; margin: { gross: number; percentage: number; }; credits: { purchased: number; used: number; gifted: number; }; } export interface RevenueSeriesPoint { date: string; revenue: number; cogs: number; margin: number; }