part of '../analytic.dart'; @freezed class DashboardAnalytic with _$DashboardAnalytic { const factory DashboardAnalytic({ required String organizationId, required String outletId, required String dateFrom, required String dateTo, required DashboardOverview overview, required List topProducts, required List paymentMethods, required List recentSales, }) = _DashboardAnalytic; factory DashboardAnalytic.empty() => DashboardAnalytic( organizationId: '', outletId: '', dateFrom: '', dateTo: '', overview: DashboardOverview.empty(), topProducts: const [], paymentMethods: const [], recentSales: const [], ); } @freezed class DashboardOverview with _$DashboardOverview { const factory DashboardOverview({ required int totalSales, required int totalOrders, required double averageOrderValue, required int totalCustomers, required int voidedOrders, required int refundedOrders, }) = _DashboardOverview; factory DashboardOverview.empty() => const DashboardOverview( totalSales: 0, totalOrders: 0, averageOrderValue: 0.0, totalCustomers: 0, voidedOrders: 0, refundedOrders: 0, ); } @freezed class DashboardTopProduct with _$DashboardTopProduct { const factory DashboardTopProduct({ required String productId, required String productName, required String categoryId, required String categoryName, required int quantitySold, required int revenue, required double averagePrice, required int orderCount, }) = _DashboardTopProduct; factory DashboardTopProduct.empty() => const DashboardTopProduct( productId: '', productName: '', categoryId: '', categoryName: '', quantitySold: 0, revenue: 0, averagePrice: 0.0, orderCount: 0, ); } @freezed class DashboardPaymentMethod with _$DashboardPaymentMethod { const factory DashboardPaymentMethod({ required String paymentMethodId, required String paymentMethodName, required String paymentMethodType, required int totalAmount, required int orderCount, required int paymentCount, required double percentage, }) = _DashboardPaymentMethod; factory DashboardPaymentMethod.empty() => const DashboardPaymentMethod( paymentMethodId: '', paymentMethodName: '', paymentMethodType: '', totalAmount: 0, orderCount: 0, paymentCount: 0, percentage: 0.0, ); } @freezed class DashboardRecentSale with _$DashboardRecentSale { const factory DashboardRecentSale({ required String date, required int sales, required int orders, required int items, required int tax, required int discount, required int netSales, }) = _DashboardRecentSale; factory DashboardRecentSale.empty() => const DashboardRecentSale( date: '', sales: 0, orders: 0, items: 0, tax: 0, discount: 0, netSales: 0, ); }