package entities import ( "time" "github.com/google/uuid" ) // PaymentMethodAnalytics represents payment method analytics data type PaymentMethodAnalytics struct { PaymentMethodID uuid.UUID `json:"payment_method_id"` PaymentMethodName string `json:"payment_method_name"` PaymentMethodType string `json:"payment_method_type"` TotalAmount float64 `json:"total_amount"` OrderCount int64 `json:"order_count"` PaymentCount int64 `json:"payment_count"` } // SalesAnalytics represents sales analytics data type SalesAnalytics struct { Date time.Time `json:"date"` Sales float64 `json:"sales"` Orders int64 `json:"orders"` Items int64 `json:"items"` Tax float64 `json:"tax"` Discount float64 `json:"discount"` NetSales float64 `json:"net_sales"` } // ProductAnalytics represents product analytics data type ProductAnalytics struct { ProductID uuid.UUID `json:"product_id"` ProductName string `json:"product_name"` CategoryID uuid.UUID `json:"category_id"` CategoryName string `json:"category_name"` QuantitySold int64 `json:"quantity_sold"` Revenue float64 `json:"revenue"` AveragePrice float64 `json:"average_price"` OrderCount int64 `json:"order_count"` } // DashboardOverview represents dashboard overview data type DashboardOverview struct { TotalSales float64 `json:"total_sales"` TotalOrders int64 `json:"total_orders"` AverageOrderValue float64 `json:"average_order_value"` TotalCustomers int64 `json:"total_customers"` VoidedOrders int64 `json:"voided_orders"` RefundedOrders int64 `json:"refunded_orders"` } // ProfitLossAnalytics represents profit and loss analytics data type ProfitLossAnalytics struct { Summary ProfitLossSummary `json:"summary"` Data []ProfitLossData `json:"data"` ProductData []ProductProfitData `json:"product_data"` } // ProfitLossSummary represents profit and loss summary data type ProfitLossSummary struct { TotalRevenue float64 `json:"total_revenue"` TotalCost float64 `json:"total_cost"` GrossProfit float64 `json:"gross_profit"` GrossProfitMargin float64 `json:"gross_profit_margin"` TotalTax float64 `json:"total_tax"` TotalDiscount float64 `json:"total_discount"` NetProfit float64 `json:"net_profit"` NetProfitMargin float64 `json:"net_profit_margin"` TotalOrders int64 `json:"total_orders"` AverageProfit float64 `json:"average_profit"` ProfitabilityRatio float64 `json:"profitability_ratio"` } // ProfitLossData represents profit and loss data by time period type ProfitLossData struct { Date time.Time `json:"date"` Revenue float64 `json:"revenue"` Cost float64 `json:"cost"` GrossProfit float64 `json:"gross_profit"` GrossProfitMargin float64 `json:"gross_profit_margin"` Tax float64 `json:"tax"` Discount float64 `json:"discount"` NetProfit float64 `json:"net_profit"` NetProfitMargin float64 `json:"net_profit_margin"` Orders int64 `json:"orders"` } // ProductProfitData represents profit data for individual products type ProductProfitData struct { ProductID uuid.UUID `json:"product_id"` ProductName string `json:"product_name"` CategoryID uuid.UUID `json:"category_id"` CategoryName string `json:"category_name"` QuantitySold int64 `json:"quantity_sold"` Revenue float64 `json:"revenue"` Cost float64 `json:"cost"` GrossProfit float64 `json:"gross_profit"` GrossProfitMargin float64 `json:"gross_profit_margin"` AveragePrice float64 `json:"average_price"` AverageCost float64 `json:"average_cost"` ProfitPerUnit float64 `json:"profit_per_unit"` }