94 lines
3.0 KiB
Go
94 lines
3.0 KiB
Go
package users
|
|
|
|
import (
|
|
appv1 "stream.api/internal/gen/proto/app/v1"
|
|
"stream.api/internal/modules/common"
|
|
)
|
|
|
|
func presentUser(view UserView) *appv1.User {
|
|
return &appv1.User{
|
|
Id: view.ID,
|
|
Email: view.Email,
|
|
Username: view.Username,
|
|
Avatar: view.Avatar,
|
|
Role: view.Role,
|
|
GoogleId: view.GoogleID,
|
|
StorageUsed: view.StorageUsed,
|
|
PlanId: view.PlanID,
|
|
PlanStartedAt: common.TimeToProto(view.PlanStartedAt),
|
|
PlanExpiresAt: common.TimeToProto(view.PlanExpiresAt),
|
|
PlanTermMonths: view.PlanTermMonths,
|
|
PlanPaymentMethod: view.PlanPaymentMethod,
|
|
PlanExpiringSoon: view.PlanExpiringSoon,
|
|
WalletBalance: view.WalletBalance,
|
|
Language: view.Language,
|
|
Locale: view.Locale,
|
|
CreatedAt: common.TimeToProto(view.CreatedAt),
|
|
UpdatedAt: common.TimeToProto(&view.UpdatedAt),
|
|
}
|
|
}
|
|
|
|
func presentPreferences(view PreferencesView) *appv1.Preferences {
|
|
return &appv1.Preferences{
|
|
EmailNotifications: view.EmailNotifications,
|
|
PushNotifications: view.PushNotifications,
|
|
MarketingNotifications: view.MarketingNotifications,
|
|
TelegramNotifications: view.TelegramNotifications,
|
|
Language: view.Language,
|
|
Locale: view.Locale,
|
|
}
|
|
}
|
|
|
|
func presentNotification(view NotificationView) *appv1.Notification {
|
|
return common.ToProtoNotification(view.Notification)
|
|
}
|
|
|
|
func presentAdminUser(view AdminUserView) *appv1.AdminUser {
|
|
return &appv1.AdminUser{
|
|
Id: view.ID,
|
|
Email: view.Email,
|
|
Username: view.Username,
|
|
Avatar: view.Avatar,
|
|
Role: view.Role,
|
|
PlanId: view.PlanID,
|
|
PlanName: view.PlanName,
|
|
StorageUsed: view.StorageUsed,
|
|
VideoCount: view.VideoCount,
|
|
WalletBalance: view.WalletBalance,
|
|
CreatedAt: common.TimeToProto(view.CreatedAt),
|
|
UpdatedAt: common.TimeToProto(&view.UpdatedAt),
|
|
}
|
|
}
|
|
|
|
func presentReferralSummary(view *ReferralUserSummaryView) *appv1.ReferralUserSummary {
|
|
if view == nil {
|
|
return nil
|
|
}
|
|
return &appv1.ReferralUserSummary{Id: view.ID, Email: view.Email, Username: view.Username}
|
|
}
|
|
|
|
func presentAdminUserReferralInfo(view *AdminUserReferralInfoView) *appv1.AdminUserReferralInfo {
|
|
if view == nil {
|
|
return nil
|
|
}
|
|
return &appv1.AdminUserReferralInfo{
|
|
Referrer: presentReferralSummary(view.Referrer),
|
|
ReferralEligible: view.ReferralEligible,
|
|
EffectiveRewardPercent: view.EffectiveRewardPercent,
|
|
RewardOverridePercent: view.RewardOverridePercent,
|
|
ShareLink: view.ShareLink,
|
|
RewardGranted: view.RewardGranted,
|
|
RewardGrantedAt: common.TimeToProto(view.RewardGrantedAt),
|
|
RewardPaymentId: view.RewardPaymentID,
|
|
RewardAmount: view.RewardAmount,
|
|
}
|
|
}
|
|
|
|
func presentAdminUserDetail(view AdminUserDetailView) *appv1.AdminUserDetail {
|
|
return &appv1.AdminUserDetail{
|
|
User: presentAdminUser(view.User),
|
|
Subscription: common.ToProtoPlanSubscription(view.Subscription),
|
|
Referral: presentAdminUserReferralInfo(view.Referral),
|
|
}
|
|
}
|