This commit is contained in:
2026-03-26 13:02:43 +00:00
parent a689f8b9da
commit eb7b519e49
64 changed files with 7081 additions and 5572 deletions

View File

@@ -0,0 +1,93 @@
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),
}
}