diff --git a/internal/handler/routes.go b/internal/handler/routes.go index 47858a2..ab75fcc 100644 --- a/internal/handler/routes.go +++ b/internal/handler/routes.go @@ -960,9 +960,9 @@ func RegisterHandlers(router *gin.Engine, serverCtx *svc.ServiceContext) { serverGroupRouter.GET("/user", server.GetServerUserListHandler(serverCtx)) } - serverGroupRouter := router.Group("/v2/server") - { + serverGroupRouter := router.Group("/v2/server") + // Get Server Protocol Config serverGroupRouter.GET("/:server_id", server.QueryServerProtocolConfigHandler(serverCtx)) } diff --git a/internal/types/compat_types.go b/internal/types/compat_types.go index dd5b5d4..862ba38 100644 --- a/internal/types/compat_types.go +++ b/internal/types/compat_types.go @@ -59,3 +59,145 @@ type EmailLoginRequest struct { LoginType string `header:"Login-Type"` CfToken string `json:"cf_token,optional" form:"cf_token"` } + +// Compatibility types for custom endpoints not included in generated types.go. +type BindEmailWithVerificationRequest struct { + Email string `json:"email" form:"email" validate:"required,email"` + Code string `json:"code" form:"code" validate:"required"` +} + +type BindEmailWithVerificationResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + Token string `json:"token,omitempty"` + UserId int64 `json:"user_id"` + FamilyJoined bool `json:"family_joined,omitempty"` + FamilyId int64 `json:"family_id,omitempty"` + OwnerUserId int64 `json:"owner_user_id,omitempty"` +} + +type BindInviteCodeRequest struct { + InviteCode string `json:"invite_code" form:"invite_code" validate:"required"` +} + +type DeleteAccountResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + UserId int64 `json:"user_id"` + Code int64 `json:"code"` +} + +type GetAgentDownloadsRequest struct{} + +type PlatformDownloads struct { + IOS int64 `json:"ios"` + Android int64 `json:"android"` + Windows int64 `json:"windows"` + Mac int64 `json:"mac"` +} + +type GetAgentDownloadsResponse struct { + Total int64 `json:"total"` + Platforms *PlatformDownloads `json:"platforms,omitempty"` + ComparisonRate *string `json:"comparison_rate,omitempty"` +} + +type GetAgentRealtimeRequest struct{} + +type GetAgentRealtimeResponse struct { + Total int64 `json:"total"` + Clicks int64 `json:"clicks"` + Views int64 `json:"views"` + Installs int64 `json:"installs"` + PaidCount int64 `json:"paid_count"` + GrowthRate string `json:"growth_rate"` + PaidGrowthRate string `json:"paid_growth_rate"` +} + +type GetInviteSalesRequest struct { + Page int `form:"page"` + Size int `form:"size"` + StartTime int64 `form:"start_time"` + EndTime int64 `form:"end_time"` +} + +type InvitedUserSale struct { + Amount float64 `json:"amount"` + UpdatedAt int64 `json:"updated_at"` + UserHash string `json:"user_hash"` + ProductName string `json:"product_name"` +} + +type GetInviteSalesResponse struct { + Total int64 `json:"total"` + List []InvitedUserSale `json:"list"` +} + +type GetSubscribeStatusRequest struct { + Email string `form:"email" json:"email" validate:"omitempty,email"` +} + +type GetSubscribeStatusResponse struct { + DeviceStatus bool `json:"device_status"` + EmailStatus bool `json:"email_status"` +} + +type GetUserInviteStatsRequest struct{} + +type GetUserInviteStatsResponse struct { + FriendlyCount int64 `json:"friendly_count"` + HistoryCount int64 `json:"history_count"` +} + +type GetErrorLogMessageListRequest struct { + Page int `form:"page"` + Size int `form:"size"` + Platform string `form:"platform"` + Level uint8 `form:"level"` + UserId int64 `form:"user_id"` + DeviceId string `form:"device_id"` + ErrorCode string `form:"error_code"` + Keyword string `form:"keyword"` + Start int64 `form:"start"` + End int64 `form:"end"` +} + +type ErrorLogMessage struct { + Id int64 `json:"id"` + Platform string `json:"platform"` + AppVersion string `json:"app_version"` + OsName string `json:"os_name"` + OsVersion string `json:"os_version"` + DeviceId string `json:"device_id"` + UserId int64 `json:"user_id"` + SessionId string `json:"session_id"` + Level uint8 `json:"level"` + ErrorCode string `json:"error_code"` + Message string `json:"message"` + CreatedAt int64 `json:"created_at"` +} + +type GetErrorLogMessageListResponse struct { + Total int64 `json:"total"` + List []ErrorLogMessage `json:"list"` +} + +type GetErrorLogMessageDetailResponse struct { + Id int64 `json:"id"` + Platform string `json:"platform"` + AppVersion string `json:"app_version"` + OsName string `json:"os_name"` + OsVersion string `json:"os_version"` + DeviceId string `json:"device_id"` + UserId int64 `json:"user_id"` + SessionId string `json:"session_id"` + Level uint8 `json:"level"` + ErrorCode string `json:"error_code"` + Message string `json:"message"` + Stack string `json:"stack"` + ClientIP string `json:"client_ip"` + UserAgent string `json:"user_agent"` + Locale string `json:"locale"` + OccurredAt int64 `json:"occurred_at"` + CreatedAt int64 `json:"created_at"` +} diff --git a/internal/types/types.go b/internal/types/types.go index 3f2e7c8..3cc0116 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -1711,8 +1711,10 @@ type QueryOrderDetailRequest struct { } type QueryOrderListRequest struct { - Page int `form:"page" validate:"required"` - Size int `form:"size" validate:"required"` + Page int `form:"page" validate:"required"` + Size int `form:"size" validate:"required"` + Status int `form:"status"` + Search string `form:"search"` } type QueryOrderListResponse struct { @@ -2718,6 +2720,7 @@ type User struct { Telegram int64 `json:"telegram"` ReferCode string `json:"refer_code"` RefererId int64 `json:"referer_id"` + ShareLink string `json:"share_link,omitempty"` Enable bool `json:"enable"` IsAdmin bool `json:"is_admin,omitempty"` EnableBalanceNotify bool `json:"enable_balance_notify"` @@ -2727,6 +2730,8 @@ type User struct { AuthMethods []UserAuthMethod `json:"auth_methods"` UserDevices []UserDevice `json:"user_devices"` Rules []string `json:"rules"` + LastLoginTime int64 `json:"last_login_time,omitempty"` + MemberStatus string `json:"member_status,omitempty"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` DeletedAt int64 `json:"deleted_at,omitempty"` @@ -2830,6 +2835,7 @@ type UserSubscribe struct { EntitlementSource string `json:"entitlement_source"` EntitlementOwnerUserId int64 `json:"entitlement_owner_user_id"` ReadOnly bool `json:"read_only"` + IsGift bool `json:"is_gift"` Short string `json:"short"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"`