package domain // import ( // "time" // dbgen "Yimaru-Backend/gen/db" // ) // type ReferralCode struct { // ID int64 // ReferrerID int64 // ReferralCode string // CompanyID int64 // NumberOfReferrals int64 // RewardAmount Currency // CreatedAt time.Time // UpdatedAt time.Time // } // type ReferralCodeRes struct { // ID int64 `json:"id"` // ReferrerID int64 `json:"referrer_id"` // ReferralCode string `json:"referral_code"` // CompanyID int64 `json:"company_id"` // NumberOfReferrals int64 `json:"number_of_referrals"` // RewardAmount float32 `json:"reward_amount"` // CreatedAt time.Time `json:"created_at"` // UpdatedAt time.Time `json:"updated_at"` // } // type CreateReferralCode struct { // ReferrerID int64 // ReferralCode string // CompanyID int64 // NumberOfReferrals int64 // RewardAmount Currency // } // type UserReferral struct { // ReferredID int64 // ReferralCodeID int64 // } // type CreateUserReferrals struct { // ReferredID int64 // ReferralCodeID int64 // } // type UpdateReferralCode struct { // ID int64 // IsActive bool // ReferralCode string // RewardAmount Currency // NumberOfReferrals int64 // } // type ReferralStats struct { // TotalReferrals int64 // TotalRewardEarned Currency // } // type ReferralStatsRes struct { // TotalReferrals int64 `json:"total_referrals"` // TotalRewardEarned float32 `json:"total_reward_earned"` // } // // type ReferralSettings struct { // // ID int64 // // ReferralRewardAmount float64 // // CashbackPercentage float64 // // BetReferralBonusPercentage float64 // // MaxReferrals int32 // // ExpiresAfterDays int32 // // UpdatedBy string // // CreatedAt time.Time // // UpdatedAt time.Time // // Version int32 // // } // // type ReferralSettingsReq struct { // // ReferralRewardAmount float64 `json:"referral_reward_amount" validate:"required"` // // CashbackPercentage float64 `json:"cashback_percentage" validate:"required"` // // MaxReferrals int32 `json:"max_referrals" validate:"required"` // // UpdatedBy string `json:"updated_by" validate:"required"` // // } // func ConvertCreateReferralCode(code CreateReferralCode) dbgen.CreateReferralCodeParams { // return dbgen.CreateReferralCodeParams{ // ReferralCode: code.ReferralCode, // ReferrerID: code.ReferrerID, // CompanyID: code.CompanyID, // NumberOfReferrals: code.NumberOfReferrals, // RewardAmount: int64(code.RewardAmount), // } // } // func ConvertDBReferralCode(code dbgen.ReferralCode) ReferralCode { // return ReferralCode{ // ID: code.ID, // ReferrerID: code.ReferrerID, // ReferralCode: code.ReferralCode, // NumberOfReferrals: code.NumberOfReferrals, // RewardAmount: Currency(code.RewardAmount), // CompanyID: code.CompanyID, // CreatedAt: code.CreatedAt.Time, // UpdatedAt: code.UpdatedAt.Time, // } // } // func ConvertDBReferralCodes(codes []dbgen.ReferralCode) []ReferralCode { // result := make([]ReferralCode, len(codes)) // for i, code := range codes { // result[i] = ConvertDBReferralCode(code) // } // return result // } // func ConvertCreateUserReferral(referral CreateUserReferrals) dbgen.CreateUserReferralParams { // return dbgen.CreateUserReferralParams{ // ReferredID: referral.ReferredID, // ReferralCodeID: referral.ReferralCodeID, // } // } // func ConvertDBUserReferral(referral dbgen.UserReferral) UserReferral { // return UserReferral{ // ReferredID: referral.ReferredID, // ReferralCodeID: referral.ReferralCodeID, // } // } // func ConvertDBUserReferrals(referrals []dbgen.UserReferral) []UserReferral { // result := make([]UserReferral, len(referrals)) // for i, referral := range referrals { // result[i] = ConvertDBUserReferral(referral) // } // return result // } // func ConvertUpdateReferralCode(referralCode UpdateReferralCode) dbgen.UpdateReferralCodeParams { // return dbgen.UpdateReferralCodeParams{ // ID: referralCode.ID, // IsActive: referralCode.IsActive, // ReferralCode: referralCode.ReferralCode, // NumberOfReferrals: referralCode.NumberOfReferrals, // RewardAmount: int64(referralCode.RewardAmount), // } // } // func ConvertDBReferralStats(stats dbgen.GetReferralStatsRow) ReferralStats { // return ReferralStats{ // TotalReferrals: stats.TotalReferrals, // TotalRewardEarned: Currency(stats.TotalRewardEarned), // } // } // func ConvertReferralCodeRes(referral ReferralCode) ReferralCodeRes { // return ReferralCodeRes{ // ID: referral.ID, // ReferrerID: referral.ReferrerID, // ReferralCode: referral.ReferralCode, // CompanyID: referral.CompanyID, // NumberOfReferrals: referral.NumberOfReferrals, // RewardAmount: referral.RewardAmount.Float32(), // CreatedAt: referral.CreatedAt, // UpdatedAt: referral.UpdatedAt, // } // } // func ConvertReferralCodeResList(referrals []ReferralCode) []ReferralCodeRes { // result := make([]ReferralCodeRes, len(referrals)) // for i, referral := range referrals { // result[i] = ConvertReferralCodeRes(referral) // } // return result // } // func ConvertReferralStatsRes(stats ReferralStats) ReferralStatsRes { // return ReferralStatsRes{ // TotalReferrals: stats.TotalReferrals, // TotalRewardEarned: stats.TotalRewardEarned.Float32(), // } // }