package domain import ( dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" "time" ) type CompanyStat struct { IntervalStart time.Time CompanyID int64 CompanyName string CompanySlug string 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 { IntervalStart time.Time `json:"interval_start"` CompanyID int64 `json:"company_id"` CompanyName string `json:"company_name"` CompanySlug string `json:"company_slug"` 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{ IntervalStart: company.IntervalStart.Time, CompanyID: company.CompanyID, CompanyName: company.CompanyName, CompanySlug: company.CompanySlug, 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{ IntervalStart: company.IntervalStart.Time, CompanyID: company.CompanyID, CompanyName: company.CompanyName, CompanySlug: company.CompanySlug, 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 }