package domain import ( dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" "time" ) type CompanyStat struct { CompanyID int64 IntervalStart time.Time TotalBets int64 TotalStake Currency DeductedStake Currency TotalCashOut Currency TotalCashBacks Currency NumberOfUnsettled int64 TotalUnsettledAmount Currency TotalAdmins int64 TotalManagers int64 TotalCashiers int64 TotalCustomers int64 TotalApprovers int64 TotalBranches int64 UpdatedAt time.Time } type CompanyStatRes struct { CompanyID int64 `json:"company_id"` IntervalStart time.Time `json:"interval_start"` TotalBets int64 `json:"total_bets"` TotalStake float32 `json:"total_stake"` DeductedStake float32 `json:"deducted_stake"` TotalCashOut float32 `json:"total_cash_out"` TotalCashBacks float32 `json:"total_cash_backs"` NumberOfUnsettled int64 `json:"number_of_unsettled"` TotalUnsettledAmount float32 `json:"total_unsettled_amount"` TotalAdmins int64 `json:"total_admins"` TotalManagers int64 `json:"total_managers"` TotalCashiers int64 `json:"total_cashiers"` TotalCustomers int64 `json:"total_customers"` TotalApprovers int64 `json:"total_approvers"` TotalBranches int64 `json:"total_branches"` UpdatedAt time.Time `json:"updated_at"` } type CompanyStatFilter struct { Interval ValidDateInterval CompanyID ValidInt64 } func ConvertDBCompanyStats(company dbgen.CompanyStat) CompanyStat { return CompanyStat{ CompanyID: company.CompanyID, TotalBets: company.TotalBets, TotalStake: Currency(company.TotalStake), DeductedStake: Currency(company.DeductedStake), TotalCashOut: Currency(company.TotalCashOut), TotalCashBacks: Currency(company.TotalCashBacks), NumberOfUnsettled: company.NumberOfUnsettled, TotalUnsettledAmount: Currency(company.TotalUnsettledAmount), TotalAdmins: company.TotalAdmins, TotalManagers: company.TotalManagers, TotalCashiers: company.TotalCashiers, TotalCustomers: company.TotalCustomers, TotalApprovers: company.TotalApprovers, TotalBranches: company.TotalBranches, UpdatedAt: company.UpdatedAt.Time, } } func ConvertDBCompanyStatsList(stats []dbgen.CompanyStat) []CompanyStat { result := make([]CompanyStat, len(stats)) for i, stat := range stats { result[i] = ConvertDBCompanyStats(stat) } return result } func ConvertDBCompanyStatsByInterval(company dbgen.GetCompanyStatsRow) CompanyStat { return CompanyStat{ CompanyID: company.CompanyID, IntervalStart: company.IntervalStart.Time, TotalBets: company.TotalBets, TotalStake: Currency(company.TotalStake), DeductedStake: Currency(company.DeductedStake), TotalCashOut: Currency(company.TotalCashOut), TotalCashBacks: Currency(company.TotalCashBacks), NumberOfUnsettled: company.NumberOfUnsettled, TotalUnsettledAmount: Currency(company.TotalUnsettledAmount), TotalAdmins: company.TotalAdmins, TotalManagers: company.TotalManagers, TotalCashiers: company.TotalCashiers, TotalCustomers: company.TotalCustomers, TotalApprovers: company.TotalApprovers, TotalBranches: company.TotalBranches, UpdatedAt: company.UpdatedAt.Time, } } func ConvertDBCompanyStatsByIntervalList(stats []dbgen.GetCompanyStatsRow) []CompanyStat { result := make([]CompanyStat, len(stats)) for i, stat := range stats { result[i] = ConvertDBCompanyStatsByInterval(stat) } return result }