types

package
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2026 License: GPL-3.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Ads

type Ads struct {
	Id          int    `json:"id"`
	Title       string `json:"title"`
	Type        string `json:"type"`
	Content     string `json:"content"`
	Description string `json:"description"`
	TargetURL   string `json:"target_url"`
	StartTime   int64  `json:"start_time"`
	EndTime     int64  `json:"end_time"`
	Status      int    `json:"status"`
	CreatedAt   int64  `json:"created_at"`
	UpdatedAt   int64  `json:"updated_at"`
}

type AlipayNotifyResponse

type AlipayNotifyResponse struct {
	ReturnCode string `json:"return_code"`
}

type Announcement

type Announcement struct {
	Id        int64  `json:"id"`
	Title     string `json:"title"`
	Content   string `json:"content"`
	Show      *bool  `json:"show"`
	Pinned    *bool  `json:"pinned"`
	Popup     *bool  `json:"popup"`
	CreatedAt int64  `json:"created_at"`
	UpdatedAt int64  `json:"updated_at"`
}

type AnyTLS added in v1.0.3

type AnyTLS struct {
	Port           int            `json:"port" validate:"required"`
	SecurityConfig SecurityConfig `json:"security_config"`
}

type AppUserSubcbribe

type AppUserSubcbribe struct {
	Id          int64                   `json:"id"`
	Name        string                  `json:"name"`
	Upload      int64                   `json:"upload"`
	Traffic     int64                   `json:"traffic"`
	Download    int64                   `json:"download"`
	DeviceLimit int64                   `json:"device_limit"`
	StartTime   string                  `json:"start_time"`
	ExpireTime  string                  `json:"expire_time"`
	List        []AppUserSubscbribeNode `json:"list"`
}

type AppUserSubscbribeNode

type AppUserSubscbribeNode struct {
	Id           int64    `json:"id"`
	Name         string   `json:"name"`
	Uuid         string   `json:"uuid"`
	Protocol     string   `json:"protocol"`
	RelayMode    string   `json:"relay_mode"`
	RelayNode    string   `json:"relay_node"`
	ServerAddr   string   `json:"server_addr"`
	SpeedLimit   int      `json:"speed_limit"`
	Tags         []string `json:"tags"`
	Traffic      int64    `json:"traffic"`
	TrafficRatio float64  `json:"traffic_ratio"`
	Upload       int64    `json:"upload"`
	Config       string   `json:"config"`
	Country      string   `json:"country"`
	City         string   `json:"city"`
	Latitude     string   `json:"latitude"`
	Longitude    string   `json:"longitude"`
	CreatedAt    int64    `json:"created_at"`
	Download     int64    `json:"download"`
}

type AppleLoginCallbackRequest

type AppleLoginCallbackRequest struct {
	Code    string `form:"code"`
	IDToken string `form:"id_token"`
	State   string `form:"state"`
}

type Application

type Application struct {
	Id            int64  `json:"id"`
	Icon          string `json:"icon"`
	Name          string `json:"name"`
	Description   string `json:"description"`
	SubscribeType string `json:"subscribe_type"`
}

type ApplicationPlatform

type ApplicationPlatform struct {
	IOS     []*ApplicationVersion `json:"ios,omitempty"`
	MacOS   []*ApplicationVersion `json:"macos,omitempty"`
	Linux   []*ApplicationVersion `json:"linux,omitempty"`
	Android []*ApplicationVersion `json:"android,omitempty"`
	Windows []*ApplicationVersion `json:"windows,omitempty"`
	Harmony []*ApplicationVersion `json:"harmony,omitempty"`
}

type ApplicationResponse

type ApplicationResponse struct {
	Applications []ApplicationResponseInfo `json:"applications"`
}

type ApplicationResponseInfo

type ApplicationResponseInfo struct {
	Id            int64               `json:"id"`
	Name          string              `json:"name"`
	Icon          string              `json:"icon"`
	Description   string              `json:"description"`
	SubscribeType string              `json:"subscribe_type"`
	Platform      ApplicationPlatform `json:"platform"`
}

type ApplicationVersion

type ApplicationVersion struct {
	Id          int64  `json:"id"`
	Url         string `json:"url"`
	Version     string `json:"version" validate:"required"`
	Description string `json:"description"`
	IsDefault   bool   `json:"is_default"`
}

type AuthConfig

type AuthConfig struct {
	Mobile   MobileAuthenticateConfig `json:"mobile"`
	Email    EmailAuthticateConfig    `json:"email"`
	Device   DeviceAuthticateConfig   `json:"device"`
	Register PubilcRegisterConfig     `json:"register"`
}

type AuthMethodConfig

type AuthMethodConfig struct {
	Id      int64       `json:"id"`
	Method  string      `json:"method"`
	Config  interface{} `json:"config"`
	Enabled bool        `json:"enabled"`
}

type BalanceLog added in v1.1.0

type BalanceLog struct {
	Type      uint16 `json:"type"`
	UserId    int64  `json:"user_id"`
	Amount    int64  `json:"amount"`
	OrderNo   string `json:"order_no,omitempty"`
	Balance   int64  `json:"balance"`
	Timestamp int64  `json:"timestamp"`
}

type BatchDeleteCouponRequest

type BatchDeleteCouponRequest struct {
	Ids []int64 `json:"ids" validate:"required"`
}

type BatchDeleteDocumentRequest

type BatchDeleteDocumentRequest struct {
	Ids []int64 `json:"ids" validate:"required"`
}

type BatchDeleteSubscribeGroupRequest

type BatchDeleteSubscribeGroupRequest struct {
	Ids []int64 `json:"ids" validate:"required"`
}

type BatchDeleteSubscribeRequest

type BatchDeleteSubscribeRequest struct {
	Ids []int64 `json:"ids" validate:"required"`
}

type BatchDeleteUserRequest

type BatchDeleteUserRequest struct {
	Ids []int64 `json:"ids" validate:"required"`
}

type BatchSendEmailTask added in v1.0.4

type BatchSendEmailTask struct {
	Id                int64  `json:"id"`
	Subject           string `json:"subject"`
	Content           string `json:"content"`
	Recipients        string `json:"recipients"`
	Scope             int8   `json:"scope"`
	RegisterStartTime int64  `json:"register_start_time"`
	RegisterEndTime   int64  `json:"register_end_time"`
	Additional        string `json:"additional"`
	Scheduled         int64  `json:"scheduled"`
	Interval          uint8  `json:"interval"`
	Limit             uint64 `json:"limit"`
	Status            uint8  `json:"status"`
	Errors            string `json:"errors"`
	Total             uint64 `json:"total"`
	Current           uint64 `json:"current"`
	CreatedAt         int64  `json:"created_at"`
	UpdatedAt         int64  `json:"updated_at"`
}

type BindOAuthCallbackRequest

type BindOAuthCallbackRequest struct {
	Method   string      `json:"method"`
	Callback interface{} `json:"callback"`
}

type BindOAuthRequest

type BindOAuthRequest struct {
	Method   string `json:"method"`
	Redirect string `json:"redirect"`
}

type BindOAuthResponse

type BindOAuthResponse struct {
	Redirect string `json:"redirect"`
}

type BindTelegramResponse

type BindTelegramResponse struct {
	Url       string `json:"url"`
	ExpiredAt int64  `json:"expired_at"`
}

type CheckUserRequest

type CheckUserRequest struct {
	Email string `form:"email" validate:"required"`
}

type CheckUserResponse

type CheckUserResponse struct {
	Exist bool `json:"exist"`
}

type CheckVerificationCodeRequest

type CheckVerificationCodeRequest struct {
	Method  string `json:"method" validate:"required,oneof=email mobile"`
	Account string `json:"account" validate:"required"`
	Code    string `json:"code" validate:"required"`
	Type    uint8  `json:"type" validate:"required"`
}

type CheckVerificationCodeRespone

type CheckVerificationCodeRespone struct {
	Status bool `json:"status"`
}

type CheckoutOrderRequest

type CheckoutOrderRequest struct {
	OrderNo   string `json:"orderNo"`
	ReturnUrl string `json:"returnUrl,omitempty"`
}

type CheckoutOrderResponse

type CheckoutOrderResponse struct {
	Type        string         `json:"type"`
	CheckoutUrl string         `json:"checkout_url,omitempty"`
	Stripe      *StripePayment `json:"stripe,omitempty"`
}

type CloseOrderRequest

type CloseOrderRequest struct {
	OrderNo string `json:"orderNo" validate:"required"`
}

type CommissionLog

type CommissionLog struct {
	Type      uint16 `json:"type"`
	UserId    int64  `json:"user_id"`
	Amount    int64  `json:"amount"`
	OrderNo   string `json:"order_no"`
	Timestamp int64  `json:"timestamp"`
}

type CommissionWithdrawRequest added in v1.2.0

type CommissionWithdrawRequest struct {
	Amount  int64  `json:"amount"`
	Content string `json:"content"`
}

type Coupon

type Coupon struct {
	Id         int64   `json:"id"`
	Name       string  `json:"name"`
	Code       string  `json:"code"`
	Count      int64   `json:"count"`
	Type       uint8   `json:"type"`
	Discount   int64   `json:"discount"`
	StartTime  int64   `json:"start_time"`
	ExpireTime int64   `json:"expire_time"`
	UserLimit  int64   `json:"user_limit"`
	Subscribe  []int64 `json:"subscribe"`
	UsedCount  int64   `json:"used_count"`
	Enable     bool    `json:"enable"`
	CreatedAt  int64   `json:"created_at"`
	UpdatedAt  int64   `json:"updated_at"`
}

type CreateAdsRequest

type CreateAdsRequest struct {
	Title       string `json:"title"`
	Type        string `json:"type"`
	Content     string `json:"content"`
	Description string `json:"description"`
	TargetURL   string `json:"target_url"`
	StartTime   int64  `json:"start_time"`
	EndTime     int64  `json:"end_time"`
	Status      int    `json:"status"`
}

type CreateAnnouncementRequest

type CreateAnnouncementRequest struct {
	Title   string `json:"title" validate:"required"`
	Content string `json:"content" validate:"required"`
}

type CreateBatchSendEmailTaskRequest added in v1.0.4

type CreateBatchSendEmailTaskRequest struct {
	Subject           string `json:"subject"`
	Content           string `json:"content"`
	Scope             int8   `json:"scope"`
	RegisterStartTime int64  `json:"register_start_time,omitempty"`
	RegisterEndTime   int64  `json:"register_end_time,omitempty"`
	Additional        string `json:"additional,omitempty"`
	Scheduled         int64  `json:"scheduled,omitempty"`
	Interval          uint8  `json:"interval,omitempty"`
	Limit             uint64 `json:"limit,omitempty"`
}

type CreateCouponRequest

type CreateCouponRequest struct {
	Name       string  `json:"name" validate:"required"`
	Code       string  `json:"code,omitempty"`
	Count      int64   `json:"count,omitempty"`
	Type       uint8   `json:"type" validate:"required"`
	Discount   int64   `json:"discount" validate:"required"`
	StartTime  int64   `json:"start_time" validate:"required"`
	ExpireTime int64   `json:"expire_time" validate:"required"`
	UserLimit  int64   `json:"user_limit,omitempty"`
	Subscribe  []int64 `json:"subscribe,omitempty"`
	UsedCount  int64   `json:"used_count,omitempty"`
	Enable     *bool   `json:"enable,omitempty"`
}

type CreateDocumentRequest

type CreateDocumentRequest struct {
	Title   string   `json:"title" validate:"required"`
	Content string   `json:"content" validate:"required"`
	Tags    []string `json:"tags,omitempty" `
	Show    *bool    `json:"show"`
}

type CreateNodeRequest

type CreateNodeRequest struct {
	Name     string   `json:"name"`
	Tags     []string `json:"tags,omitempty"`
	Port     uint16   `json:"port"`
	Address  string   `json:"address"`
	ServerId int64    `json:"server_id"`
	Protocol string   `json:"protocol"`
	Enabled  *bool    `json:"enabled"`
}

type CreateOrderRequest

type CreateOrderRequest struct {
	UserId         int64  `json:"user_id" validate:"required"`
	Type           uint8  `json:"type" validate:"required"`
	Quantity       int64  `json:"quantity,omitempty"`
	Price          int64  `json:"price" validate:"required"`
	Amount         int64  `json:"amount" validate:"required"`
	Discount       int64  `json:"discount,omitempty"`
	Coupon         string `json:"coupon,omitempty"`
	CouponDiscount int64  `json:"coupon_discount,omitempty"`
	Commission     int64  `json:"commission"`
	FeeAmount      int64  `json:"fee_amount" validate:"required"`
	PaymentId      int64  `json:"payment_id" validate:"required"`
	TradeNo        string `json:"trade_no,omitempty"`
	Status         uint8  `json:"status,omitempty"`
	SubscribeId    int64  `json:"subscribe_id,omitempty"`
}

type CreatePaymentMethodRequest

type CreatePaymentMethodRequest struct {
	Name        string      `json:"name" validate:"required"`
	Platform    string      `json:"platform" validate:"required"`
	Description string      `json:"description"`
	Icon        string      `json:"icon,omitempty"`
	Domain      string      `json:"domain,omitempty"`
	Config      interface{} `json:"config" validate:"required"`
	FeeMode     uint        `json:"fee_mode"`
	FeePercent  int64       `json:"fee_percent,omitempty"`
	FeeAmount   int64       `json:"fee_amount,omitempty"`
	Enable      *bool       `json:"enable" validate:"required"`
}

type CreateQuotaTaskRequest added in v1.1.0

type CreateQuotaTaskRequest struct {
	Subscribers  []int64 `json:"subscribers"`
	IsActive     *bool   `json:"is_active"`
	StartTime    int64   `json:"start_time"`
	EndTime      int64   `json:"end_time"`
	ResetTraffic bool    `json:"reset_traffic"`
	Days         uint64  `json:"days"`
	GiftType     uint8   `json:"gift_type"`
	GiftValue    uint64  `json:"gift_value"`
}

type CreateServerRequest added in v1.1.0

type CreateServerRequest struct {
	Name      string     `json:"name"`
	Country   string     `json:"country,omitempty"`
	City      string     `json:"city,omitempty"`
	Address   string     `json:"address"`
	Sort      int        `json:"sort,omitempty"`
	Protocols []Protocol `json:"protocols"`
}

type CreateSubscribeApplicationRequest added in v1.0.4

type CreateSubscribeApplicationRequest struct {
	Name              string       `json:"name"`
	Description       string       `json:"description,omitempty"`
	Icon              string       `json:"icon,omitempty"`
	Scheme            string       `json:"scheme,omitempty"`
	UserAgent         string       `json:"user_agent"`
	IsDefault         bool         `json:"is_default"`
	SubscribeTemplate string       `json:"template"`
	OutputFormat      string       `json:"output_format"`
	DownloadLink      DownloadLink `json:"download_link"`
}

type CreateSubscribeGroupRequest

type CreateSubscribeGroupRequest struct {
	Name        string `json:"name" validate:"required"`
	Description string `json:"description"`
}

type CreateSubscribeRequest

type CreateSubscribeRequest struct {
	Name              string              `json:"name" validate:"required"`
	Language          string              `json:"language"`
	Description       string              `json:"description"`
	UnitPrice         int64               `json:"unit_price"`
	UnitTime          string              `json:"unit_time"`
	Discount          []SubscribeDiscount `json:"discount"`
	Replacement       int64               `json:"replacement"`
	Inventory         int64               `json:"inventory"`
	Traffic           int64               `json:"traffic"`
	SpeedLimit        int64               `json:"speed_limit"`
	DeviceLimit       int64               `json:"device_limit"`
	Quota             int64               `json:"quota"`
	Nodes             []int64             `json:"nodes"`
	NodeTags          []string            `json:"node_tags"`
	Show              *bool               `json:"show"`
	Sell              *bool               `json:"sell"`
	DeductionRatio    int64               `json:"deduction_ratio"`
	AllowDeduction    *bool               `json:"allow_deduction"`
	ResetCycle        int64               `json:"reset_cycle"`
	RenewalReset      *bool               `json:"renewal_reset"`
	ShowOriginalPrice bool                `json:"show_original_price"`
}

type CreateTicketFollowRequest

type CreateTicketFollowRequest struct {
	TicketId int64  `json:"ticket_id" validate:"required"`
	From     string `json:"from" validate:"required"`
	Type     uint8  `json:"type" validate:"required"`
	Content  string `json:"content" validate:"required"`
}

type CreateUserAuthMethodRequest

type CreateUserAuthMethodRequest struct {
	UserId         int64  `json:"user_id"`
	AuthType       string `json:"auth_type"`
	AuthIdentifier string `json:"auth_identifier"`
}

type CreateUserRequest

type CreateUserRequest struct {
	Email              string `json:"email"`
	Telephone          string `json:"telephone"`
	TelephoneAreaCode  string `json:"telephone_area_code"`
	Password           string `json:"password"`
	ProductId          int64  `json:"product_id"`
	Duration           int64  `json:"duration"`
	ReferralPercentage uint8  `json:"referral_percentage"`
	OnlyFirstPurchase  bool   `json:"only_first_purchase"`
	RefererUser        string `json:"referer_user"`
	ReferCode          string `json:"refer_code"`
	Balance            int64  `json:"balance"`
	Commission         int64  `json:"commission"`
	GiftAmount         int64  `json:"gift_amount"`
	IsAdmin            bool   `json:"is_admin"`
}

type CreateUserSubscribeRequest

type CreateUserSubscribeRequest struct {
	UserId      int64 `json:"user_id"`
	ExpiredAt   int64 `json:"expired_at"`
	Traffic     int64 `json:"traffic"`
	SubscribeId int64 `json:"subscribe_id"`
}

type CreateUserTicketFollowRequest

type CreateUserTicketFollowRequest struct {
	TicketId int64  `json:"ticket_id"`
	From     string `json:"from"`
	Type     uint8  `json:"type"`
	Content  string `json:"content"`
}

type CreateUserTicketRequest

type CreateUserTicketRequest struct {
	Title       string `json:"title"`
	Description string `json:"description"`
}

type Currency

type Currency struct {
	CurrencyUnit   string `json:"currency_unit"`
	CurrencySymbol string `json:"currency_symbol"`
}

type CurrencyConfig

type CurrencyConfig struct {
	AccessKey      string `json:"access_key"`
	CurrencyUnit   string `json:"currency_unit"`
	CurrencySymbol string `json:"currency_symbol"`
}

type DeleteAdsRequest

type DeleteAdsRequest struct {
	Id int64 `json:"id"`
}

type DeleteAnnouncementRequest

type DeleteAnnouncementRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteCouponRequest

type DeleteCouponRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteDocumentRequest

type DeleteDocumentRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteNodeRequest

type DeleteNodeRequest struct {
	Id int64 `json:"id"`
}

type DeletePaymentMethodRequest

type DeletePaymentMethodRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteServerRequest added in v1.1.0

type DeleteServerRequest struct {
	Id int64 `json:"id"`
}

type DeleteSubscribeApplicationRequest added in v1.0.4

type DeleteSubscribeApplicationRequest struct {
	Id int64 `json:"id"`
}

type DeleteSubscribeGroupRequest

type DeleteSubscribeGroupRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteSubscribeRequest

type DeleteSubscribeRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type DeleteUserAuthMethodRequest

type DeleteUserAuthMethodRequest struct {
	UserId   int64  `json:"user_id"`
	AuthType string `json:"auth_type"`
}

type DeleteUserDeivceRequest

type DeleteUserDeivceRequest struct {
	Id int64 `json:"id"`
}

type DeleteUserSubscribeRequest

type DeleteUserSubscribeRequest struct {
	UserSubscribeId int64 `json:"user_subscribe_id"`
}

type DeviceAuthticateConfig added in v1.1.8

type DeviceAuthticateConfig struct {
	Enable         bool `json:"enable"`
	ShowAds        bool `json:"show_ads"`
	EnableSecurity bool `json:"enable_security"`
	OnlyRealDevice bool `json:"only_real_device"`
}

type DeviceLoginRequest added in v1.1.8

type DeviceLoginRequest struct {
	Identifier string `json:"identifier" validate:"required"`
	IP         string `header:"X-Original-Forwarded-For"`
	UserAgent  string `json:"user_agent" validate:"required"`
	CfToken    string `json:"cf_token,optional"`
}

type Document

type Document struct {
	Id        int64    `json:"id"`
	Title     string   `json:"title"`
	Content   string   `json:"content"`
	Tags      []string `json:"tags"`
	Show      bool     `json:"show"`
	CreatedAt int64    `json:"created_at"`
	UpdatedAt int64    `json:"updated_at"`
}
type DownloadLink struct {
	IOS     string `json:"ios,omitempty"`
	Android string `json:"android,omitempty"`
	Windows string `json:"windows,omitempty"`
	Mac     string `json:"mac,omitempty"`
	Linux   string `json:"linux,omitempty"`
	Harmony string `json:"harmony,omitempty"`
}

type EPayNotifyRequest

type EPayNotifyRequest struct {
	Pid         int64  `json:"pid"          form:"pid"`
	TradeNo     string `json:"trade_no"     form:"trade_no"`
	OutTradeNo  string `json:"out_trade_no" form:"out_trade_no"`
	Type        string `json:"type"         form:"type"`
	Name        string `json:"name"         form:"name"`
	Money       string `json:"money"        form:"money"`
	TradeStatus string `json:"trade_status" form:"trade_status"`
	Param       string `json:"param"        form:"param"`
	Sign        string `json:"sign"         form:"sign"`
	SignType    string `json:"sign_type"    form:"sign_type"`
}

type EmailAuthticateConfig

type EmailAuthticateConfig struct {
	Enable             bool   `json:"enable"`
	EnableVerify       bool   `json:"enable_verify"`
	EnableDomainSuffix bool   `json:"enable_domain_suffix"`
	DomainSuffixList   string `json:"domain_suffix_list"`
}

type FilterBalanceLogRequest added in v1.1.0

type FilterBalanceLogRequest struct {
	FilterLogParams
	UserId int64 `form:"user_id,optional"`
}

type FilterBalanceLogResponse added in v1.1.0

type FilterBalanceLogResponse struct {
	Total int64        `json:"total"`
	List  []BalanceLog `json:"list"`
}

type FilterCommissionLogRequest added in v1.1.0

type FilterCommissionLogRequest struct {
	FilterLogParams
	UserId int64 `form:"user_id,optional"`
}

type FilterCommissionLogResponse added in v1.1.0

type FilterCommissionLogResponse struct {
	Total int64           `json:"total"`
	List  []CommissionLog `json:"list"`
}

type FilterEmailLogResponse added in v1.1.0

type FilterEmailLogResponse struct {
	Total int64        `json:"total"`
	List  []MessageLog `json:"list"`
}

type FilterGiftLogRequest added in v1.1.0

type FilterGiftLogRequest struct {
	FilterLogParams
	UserId int64 `form:"user_id,optional"`
}

type FilterGiftLogResponse added in v1.1.0

type FilterGiftLogResponse struct {
	Total int64     `json:"total"`
	List  []GiftLog `json:"list"`
}

type FilterLogParams added in v1.1.0

type FilterLogParams struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Date   string `form:"date,optional"`
	Search string `form:"search,optional"`
}

type FilterLoginLogRequest added in v1.1.0

type FilterLoginLogRequest struct {
	FilterLogParams
	UserId int64 `form:"user_id,optional"`
}

type FilterLoginLogResponse added in v1.1.0

type FilterLoginLogResponse struct {
	Total int64      `json:"total"`
	List  []LoginLog `json:"list"`
}

type FilterMobileLogResponse added in v1.1.0

type FilterMobileLogResponse struct {
	Total int64        `json:"total"`
	List  []MessageLog `json:"list"`
}

type FilterNodeListRequest added in v1.1.0

type FilterNodeListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Search string `form:"search,omitempty"`
}

type FilterNodeListResponse added in v1.1.0

type FilterNodeListResponse struct {
	Total int64  `json:"total"`
	List  []Node `json:"list"`
}

type FilterRegisterLogRequest added in v1.1.0

type FilterRegisterLogRequest struct {
	FilterLogParams
	UserId int64 `form:"user_id,optional"`
}

type FilterRegisterLogResponse added in v1.1.0

type FilterRegisterLogResponse struct {
	Total int64         `json:"total"`
	List  []RegisterLog `json:"list"`
}

type FilterResetSubscribeLogRequest added in v1.1.0

type FilterResetSubscribeLogRequest struct {
	FilterLogParams
	UserSubscribeId int64 `form:"user_subscribe_id,optional"`
}

type FilterResetSubscribeLogResponse added in v1.1.0

type FilterResetSubscribeLogResponse struct {
	Total int64               `json:"total"`
	List  []ResetSubscribeLog `json:"list"`
}

type FilterServerListRequest added in v1.1.0

type FilterServerListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Search string `form:"search,omitempty"`
}

type FilterServerListResponse added in v1.1.0

type FilterServerListResponse struct {
	Total int64    `json:"total"`
	List  []Server `json:"list"`
}

type FilterServerTrafficLogRequest added in v1.1.0

type FilterServerTrafficLogRequest struct {
	FilterLogParams
	ServerId int64 `form:"server_id,optional"`
}

type FilterServerTrafficLogResponse added in v1.1.0

type FilterServerTrafficLogResponse struct {
	Total int64              `json:"total"`
	List  []ServerTrafficLog `json:"list"`
}

type FilterSubscribeLogRequest added in v1.1.0

type FilterSubscribeLogRequest struct {
	FilterLogParams
	UserId          int64 `form:"user_id,optional"`
	UserSubscribeId int64 `form:"user_subscribe_id,optional"`
}

type FilterSubscribeLogResponse added in v1.1.0

type FilterSubscribeLogResponse struct {
	Total int64          `json:"total"`
	List  []SubscribeLog `json:"list"`
}

type FilterSubscribeTrafficRequest added in v1.1.0

type FilterSubscribeTrafficRequest struct {
	FilterLogParams
	UserId          int64 `form:"user_id,optional"`
	UserSubscribeId int64 `form:"user_subscribe_id,optional"`
}

type FilterSubscribeTrafficResponse added in v1.1.0

type FilterSubscribeTrafficResponse struct {
	Total int64                     `json:"total"`
	List  []UserSubscribeTrafficLog `json:"list"`
}

type FilterTrafficLogDetailsRequest added in v1.1.0

type FilterTrafficLogDetailsRequest struct {
	FilterLogParams
	ServerId    int64 `form:"server_id,optional"`
	SubscribeId int64 `form:"subscribe_id,optional"`
	UserId      int64 `form:"user_id,optional"`
}

type FilterTrafficLogDetailsResponse added in v1.1.0

type FilterTrafficLogDetailsResponse struct {
	Total int64               `json:"total"`
	List  []TrafficLogDetails `json:"list"`
}

type Follow

type Follow struct {
	Id        int64  `json:"id"`
	TicketId  int64  `json:"ticket_id"`
	From      string `json:"from"`
	Type      uint8  `json:"type"`
	Content   string `json:"content"`
	CreatedAt int64  `json:"created_at"`
}

type GetAdsDetailRequest

type GetAdsDetailRequest struct {
	Id int64 `form:"id"`
}

type GetAdsListRequest

type GetAdsListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Status *int   `form:"status,omitempty"`
	Search string `form:"search,omitempty"`
}

type GetAdsListResponse

type GetAdsListResponse struct {
	Total int64 `json:"total"`
	List  []Ads `json:"list"`
}

type GetAdsRequest

type GetAdsRequest struct {
	Device   string `form:"device"`
	Position string `form:"position"`
}

type GetAdsResponse

type GetAdsResponse struct {
	List []Ads `json:"list"`
}

type GetAnnouncementListRequest

type GetAnnouncementListRequest struct {
	Page   int64  `form:"page"`
	Size   int64  `form:"size"`
	Show   *bool  `form:"show,omitempty"`
	Pinned *bool  `form:"pinned,omitempty"`
	Popup  *bool  `form:"popup,omitempty"`
	Search string `form:"search,omitempty"`
}

type GetAnnouncementListResponse

type GetAnnouncementListResponse struct {
	Total int64          `json:"total"`
	List  []Announcement `json:"list"`
}

type GetAnnouncementRequest

type GetAnnouncementRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetAuthMethodConfigRequest

type GetAuthMethodConfigRequest struct {
	Method string `form:"method"`
}

type GetAuthMethodListResponse

type GetAuthMethodListResponse struct {
	List []AuthMethodConfig `json:"list"`
}

type GetAvailablePaymentMethodsResponse

type GetAvailablePaymentMethodsResponse struct {
	List []PaymentMethod `json:"list"`
}

type GetBatchSendEmailTaskListRequest added in v1.0.4

type GetBatchSendEmailTaskListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Scope  *int8  `form:"scope,omitempty"`
	Status *uint8 `form:"status,omitempty"`
}

type GetBatchSendEmailTaskListResponse added in v1.0.4

type GetBatchSendEmailTaskListResponse struct {
	Total int64                `json:"total"`
	List  []BatchSendEmailTask `json:"list"`
}

type GetBatchSendEmailTaskStatusRequest added in v1.0.4

type GetBatchSendEmailTaskStatusRequest struct {
	Id int64 `json:"id"`
}

type GetBatchSendEmailTaskStatusResponse added in v1.0.4

type GetBatchSendEmailTaskStatusResponse struct {
	Status  uint8  `json:"status"`
	Current int64  `json:"current"`
	Total   int64  `json:"total"`
	Errors  string `json:"errors"`
}

type GetCouponListRequest

type GetCouponListRequest struct {
	Page      int64  `form:"page" validate:"required"`
	Size      int64  `form:"size" validate:"required"`
	Subscribe int64  `form:"subscribe,omitempty"`
	Search    string `form:"search,omitempty"`
}

type GetCouponListResponse

type GetCouponListResponse struct {
	Total int64    `json:"total"`
	List  []Coupon `json:"list"`
}

type GetDetailRequest

type GetDetailRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetDeviceListResponse added in v1.1.8

type GetDeviceListResponse struct {
	List  []UserDevice `json:"list"`
	Total int64        `json:"total"`
}

type GetDocumentDetailRequest

type GetDocumentDetailRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type GetDocumentListRequest

type GetDocumentListRequest struct {
	Page   int64  `form:"page" validate:"required"`
	Size   int64  `form:"size" validate:"required"`
	Tag    string `form:"tag,omitempty"`
	Search string `form:"search,omitempty"`
}

type GetDocumentListResponse

type GetDocumentListResponse struct {
	Total int64      `json:"total"`
	List  []Document `json:"list"`
}

type GetGlobalConfigResponse

type GetGlobalConfigResponse struct {
	Site         SiteConfig             `json:"site"`
	Verify       VeifyConfig            `json:"verify"`
	Auth         AuthConfig             `json:"auth"`
	Invite       InviteConfig           `json:"invite"`
	Currency     Currency               `json:"currency"`
	Subscribe    SubscribeConfig        `json:"subscribe"`
	VerifyCode   PubilcVerifyCodeConfig `json:"verify_code"`
	OAuthMethods []string               `json:"oauth_methods"`
	WebAd        bool                   `json:"web_ad"`
}

type GetLoginLogRequest

type GetLoginLogRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type GetLoginLogResponse

type GetLoginLogResponse struct {
	List  []UserLoginLog `json:"list"`
	Total int64          `json:"total"`
}

type GetMessageLogListRequest

type GetMessageLogListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Type   uint8  `form:"type"`
	Search string `form:"search,optional"`
}

type GetMessageLogListResponse

type GetMessageLogListResponse struct {
	Total int64        `json:"total"`
	List  []MessageLog `json:"list"`
}

type GetNodeMultiplierResponse

type GetNodeMultiplierResponse struct {
	Periods []TimePeriod `json:"periods"`
}

type GetOAuthMethodsResponse

type GetOAuthMethodsResponse struct {
	Methods []UserAuthMethod `json:"methods"`
}

type GetOrderListRequest

type GetOrderListRequest struct {
	Page        int64  `form:"page" validate:"required"`
	Size        int64  `form:"size" validate:"required"`
	UserId      int64  `form:"user_id,omitempty"`
	Status      uint8  `form:"status,omitempty"`
	SubscribeId int64  `form:"subscribe_id,omitempty"`
	Search      string `form:"search,omitempty"`
}

type GetOrderListResponse

type GetOrderListResponse struct {
	Total int64   `json:"total"`
	List  []Order `json:"list"`
}

type GetPaymentMethodListRequest

type GetPaymentMethodListRequest struct {
	Page     int    `form:"page"`
	Size     int    `form:"size"`
	Platform string `form:"platform,omitempty"`
	Search   string `form:"search,omitempty"`
	Enable   *bool  `form:"enable,omitempty"`
}

type GetPaymentMethodListResponse

type GetPaymentMethodListResponse struct {
	Total int64                 `json:"total"`
	List  []PaymentMethodDetail `json:"list"`
}

type GetPreSendEmailCountRequest added in v1.0.4

type GetPreSendEmailCountRequest struct {
	Scope             int8  `json:"scope"`
	RegisterStartTime int64 `json:"register_start_time,omitempty"`
	RegisterEndTime   int64 `json:"register_end_time,omitempty"`
}

type GetPreSendEmailCountResponse added in v1.0.4

type GetPreSendEmailCountResponse struct {
	Count int64 `json:"count"`
}

type GetServerConfigRequest

type GetServerConfigRequest struct {
	ServerCommon
}

type GetServerConfigResponse

type GetServerConfigResponse struct {
	Basic    ServerBasic `json:"basic"`
	Protocol string      `json:"protocol"`
	Config   interface{} `json:"config"`
}

type GetServerProtocolsRequest added in v1.1.0

type GetServerProtocolsRequest struct {
	Id int64 `form:"id"`
}

type GetServerProtocolsResponse added in v1.1.0

type GetServerProtocolsResponse struct {
	Protocols []Protocol `json:"protocols"`
}

type GetServerUserListRequest

type GetServerUserListRequest struct {
	ServerCommon
}

type GetServerUserListResponse

type GetServerUserListResponse struct {
	Users []ServerUser `json:"users"`
}

type GetStatResponse

type GetStatResponse struct {
	User     int64    `json:"user"`
	Node     int64    `json:"node"`
	Country  int64    `json:"country"`
	Protocol []string `json:"protocol"`
}

type GetSubscribeApplicationListRequest added in v1.0.4

type GetSubscribeApplicationListRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type GetSubscribeApplicationListResponse added in v1.0.4

type GetSubscribeApplicationListResponse struct {
	Total int64                  `json:"total"`
	List  []SubscribeApplication `json:"list"`
}

type GetSubscribeClientResponse added in v1.0.4

type GetSubscribeClientResponse struct {
	Total int64             `json:"total"`
	List  []SubscribeClient `json:"list"`
}

type GetSubscribeDetailsRequest

type GetSubscribeDetailsRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetSubscribeGroupListResponse

type GetSubscribeGroupListResponse struct {
	List  []SubscribeGroup `json:"list"`
	Total int64            `json:"total"`
}

type GetSubscribeListRequest

type GetSubscribeListRequest struct {
	Page     int64  `form:"page" validate:"required"`
	Size     int64  `form:"size" validate:"required"`
	Language string `form:"language,omitempty"`
	Search   string `form:"search,omitempty"`
}

type GetSubscribeListResponse

type GetSubscribeListResponse struct {
	List  []SubscribeItem `json:"list"`
	Total int64           `json:"total"`
}

type GetSubscribeLogRequest

type GetSubscribeLogRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type GetSubscribeLogResponse

type GetSubscribeLogResponse struct {
	List  []UserSubscribeLog `json:"list"`
	Total int64              `json:"total"`
}

type GetSubscriptionRequest added in v1.1.0

type GetSubscriptionRequest struct {
	Language string `form:"language"`
}

type GetSubscriptionResponse

type GetSubscriptionResponse struct {
	List []Subscribe `json:"list"`
}

type GetTicketListRequest

type GetTicketListRequest struct {
	Page   int64  `form:"page"`
	Size   int64  `form:"size"`
	UserId int64  `form:"user_id,omitempty"`
	Status *uint8 `form:"status,omitempty"`
	Search string `form:"search,omitempty"`
}

type GetTicketListResponse

type GetTicketListResponse struct {
	Total int64    `json:"total"`
	List  []Ticket `json:"list"`
}

type GetTicketRequest

type GetTicketRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetTosResponse

type GetTosResponse struct {
	TosContent string `json:"tos_content"`
}

type GetUserAuthMethodRequest

type GetUserAuthMethodRequest struct {
	UserId int64 `json:"user_id"`
}

type GetUserAuthMethodResponse

type GetUserAuthMethodResponse struct {
	AuthMethods []UserAuthMethod `json:"auth_methods"`
}

type GetUserListRequest

type GetUserListRequest struct {
	Page            int    `form:"page"`
	Size            int    `form:"size"`
	Search          string `form:"search,omitempty"`
	UserId          *int64 `form:"user_id,omitempty"`
	Unscoped        bool   `form:"unscoped,omitempty"`
	SubscribeId     *int64 `form:"subscribe_id,omitempty"`
	UserSubscribeId *int64 `form:"user_subscribe_id,omitempty"`
}

type GetUserListResponse

type GetUserListResponse struct {
	Total int64  `json:"total"`
	List  []User `json:"list"`
}

type GetUserLoginLogsRequest

type GetUserLoginLogsRequest struct {
	Page   int   `form:"page"`
	Size   int   `form:"size"`
	UserId int64 `form:"user_id"`
}

type GetUserLoginLogsResponse

type GetUserLoginLogsResponse struct {
	List  []UserLoginLog `json:"list"`
	Total int64          `json:"total"`
}

type GetUserSubscribeByIdRequest

type GetUserSubscribeByIdRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetUserSubscribeDevicesRequest

type GetUserSubscribeDevicesRequest struct {
	Page        int   `form:"page"`
	Size        int   `form:"size"`
	UserId      int64 `form:"user_id"`
	SubscribeId int64 `form:"subscribe_id"`
}

type GetUserSubscribeDevicesResponse

type GetUserSubscribeDevicesResponse struct {
	List  []UserDevice `json:"list"`
	Total int64        `json:"total"`
}

type GetUserSubscribeListRequest

type GetUserSubscribeListRequest struct {
	Page   int   `form:"page"`
	Size   int   `form:"size"`
	UserId int64 `form:"user_id"`
}

type GetUserSubscribeListResponse

type GetUserSubscribeListResponse struct {
	List  []UserSubscribe `json:"list"`
	Total int64           `json:"total"`
}

type GetUserSubscribeLogsRequest

type GetUserSubscribeLogsRequest struct {
	Page        int   `form:"page"`
	Size        int   `form:"size"`
	UserId      int64 `form:"user_id"`
	SubscribeId int64 `form:"subscribe_id,omitempty"`
}

type GetUserSubscribeLogsResponse

type GetUserSubscribeLogsResponse struct {
	List  []UserSubscribeLog `json:"list"`
	Total int64              `json:"total"`
}

type GetUserSubscribeResetTrafficLogsRequest added in v1.1.0

type GetUserSubscribeResetTrafficLogsRequest struct {
	Page            int   `form:"page"`
	Size            int   `form:"size"`
	UserSubscribeId int64 `form:"user_subscribe_id"`
}

type GetUserSubscribeResetTrafficLogsResponse added in v1.1.0

type GetUserSubscribeResetTrafficLogsResponse struct {
	List  []ResetSubscribeTrafficLog `json:"list"`
	Total int64                      `json:"total"`
}

type GetUserSubscribeTrafficLogsRequest

type GetUserSubscribeTrafficLogsRequest struct {
	Page        int   `form:"page"`
	Size        int   `form:"size"`
	UserId      int64 `form:"user_id"`
	SubscribeId int64 `form:"subscribe_id"`
	StartTime   int64 `form:"start_time"`
	EndTime     int64 `form:"end_time"`
}

type GetUserSubscribeTrafficLogsResponse

type GetUserSubscribeTrafficLogsResponse struct {
	List  []TrafficLog `json:"list"`
	Total int64        `json:"total"`
}

type GetUserTicketDetailRequest

type GetUserTicketDetailRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type GetUserTicketListRequest

type GetUserTicketListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Status *uint8 `form:"status,omitempty"`
	Search string `form:"search,omitempty"`
}

type GetUserTicketListResponse

type GetUserTicketListResponse struct {
	Total int64    `json:"total"`
	List  []Ticket `json:"list"`
}

type GiftLog added in v1.1.0

type GiftLog struct {
	Type        uint16 `json:"type"`
	UserId      int64  `json:"user_id"`
	OrderNo     string `json:"order_no"`
	SubscribeId int64  `json:"subscribe_id"`
	Amount      int64  `json:"amount"`
	Balance     int64  `json:"balance"`
	Remark      string `json:"remark,omitempty"`
	Timestamp   int64  `json:"timestamp"`
}

type GoogleLoginCallbackRequest

type GoogleLoginCallbackRequest struct {
	Code  string `form:"code"`
	State string `form:"state"`
}

type HasMigrateSeverNodeResponse added in v1.1.0

type HasMigrateSeverNodeResponse struct {
	HasMigrate bool `json:"has_migrate"`
}

type HeartbeatResponse added in v1.2.0

type HeartbeatResponse struct {
	Status    bool   `json:"status"`
	Message   string `json:"message,omitempty"`
	Timestamp int64  `json:"timestamp,omitempty"`
}

type Hysteria2

type Hysteria2 struct {
	Port           int            `json:"port" validate:"required"`
	HopPorts       string         `json:"hop_ports" validate:"required"`
	HopInterval    int            `json:"hop_interval" validate:"required"`
	ObfsPassword   string         `json:"obfs_password" validate:"required"`
	SecurityConfig SecurityConfig `json:"security_config"`
}

type InviteConfig

type InviteConfig struct {
	ForcedInvite       bool  `json:"forced_invite"`
	ReferralPercentage int64 `json:"referral_percentage"`
	OnlyFirstPurchase  bool  `json:"only_first_purchase"`
}

type KickOfflineRequest

type KickOfflineRequest struct {
	Id int64 `json:"id"`
}

type LogResponse

type LogResponse struct {
	List interface{} `json:"list"`
}

type LogSetting added in v1.1.0

type LogSetting struct {
	AutoClear *bool `json:"auto_clear"`
	ClearDays int64 `json:"clear_days"`
}

type LoginLog added in v1.1.0

type LoginLog struct {
	UserId    int64  `json:"user_id"`
	Method    string `json:"method"`
	LoginIP   string `json:"login_ip"`
	UserAgent string `json:"user_agent"`
	Success   bool   `json:"success"`
	Timestamp int64  `json:"timestamp"`
}

type LoginResponse

type LoginResponse struct {
	Token string `json:"token"`
}

type MessageLog

type MessageLog struct {
	Id        int64       `json:"id"`
	Type      uint8       `json:"type"`
	Platform  string      `json:"platform"`
	To        string      `json:"to"`
	Subject   string      `json:"subject"`
	Content   interface{} `json:"content"`
	Status    uint8       `json:"status"`
	CreatedAt int64       `json:"created_at"`
}

type MigrateServerNodeResponse added in v1.1.0

type MigrateServerNodeResponse struct {
	Succee  uint64 `json:"succee"`
	Fail    uint64 `json:"fail"`
	Message string `json:"message,omitempty"`
}

type MobileAuthenticateConfig

type MobileAuthenticateConfig struct {
	Enable          bool     `json:"enable"`
	EnableWhitelist bool     `json:"enable_whitelist"`
	Whitelist       []string `json:"whitelist"`
}

type ModuleConfig added in v1.2.0

type ModuleConfig struct {
	Secret         string `json:"secret"`          // 通讯密钥
	ServiceName    string `json:"service_name"`    // 服务名称
	ServiceVersion string `json:"service_version"` // 服务版本
}

type Node added in v1.1.0

type Node struct {
	Id        int64    `json:"id"`
	Name      string   `json:"name"`
	Tags      []string `json:"tags"`
	Port      uint16   `json:"port"`
	Address   string   `json:"address"`
	ServerId  int64    `json:"server_id"`
	Protocol  string   `json:"protocol"`
	Enabled   *bool    `json:"enabled"`
	Sort      int      `json:"sort,omitempty"`
	CreatedAt int64    `json:"created_at"`
	UpdatedAt int64    `json:"updated_at"`
}

type NodeConfig

type NodeConfig struct {
	NodeSecret             string         `json:"node_secret"`
	NodePullInterval       int64          `json:"node_pull_interval"`
	NodePushInterval       int64          `json:"node_push_interval"`
	TrafficReportThreshold int64          `json:"traffic_report_threshold"`
	IPStrategy             string         `json:"ip_strategy"`
	DNS                    []NodeDNS      `json:"dns"`
	Block                  []string       `json:"block"`
	Outbound               []NodeOutbound `json:"outbound"`
}

type NodeDNS added in v1.1.2

type NodeDNS struct {
	Proto   string   `json:"proto"`
	Address string   `json:"address"`
	Domains []string `json:"domains"`
}

type NodeOutbound added in v1.1.2

type NodeOutbound struct {
	Name     string   `json:"name"`
	Protocol string   `json:"protocol"`
	Address  string   `json:"address"`
	Port     int64    `json:"port"`
	Password string   `json:"password"`
	Rules    []string `json:"rules"`
}

type NodeRelay

type NodeRelay struct {
	Host   string `json:"host"`
	Port   int    `json:"port"`
	Prefix string `json:"prefix"`
}

type OAthLoginRequest

type OAthLoginRequest struct {
	Method   string `json:"method" validate:"required"` // google, facebook, apple, telegram, github etc.
	Redirect string `json:"redirect"`
}

type OAuthLoginGetTokenRequest

type OAuthLoginGetTokenRequest struct {
	Method   string      `json:"method" validate:"required"` // google, facebook, apple, telegram, github etc.
	Callback interface{} `json:"callback" validate:"required"`
}

type OAuthLoginResponse

type OAuthLoginResponse struct {
	Redirect string `json:"redirect"`
}

type OnlineUser

type OnlineUser struct {
	SID int64  `json:"uid"`
	IP  string `json:"ip"`
}

type OnlineUsersRequest

type OnlineUsersRequest struct {
	ServerCommon
	Users []OnlineUser `json:"users"`
}

type Order

type Order struct {
	Id             int64         `json:"id"`
	UserId         int64         `json:"user_id"`
	OrderNo        string        `json:"order_no"`
	Type           uint8         `json:"type"`
	Quantity       int64         `json:"quantity"`
	Price          int64         `json:"price"`
	Amount         int64         `json:"amount"`
	GiftAmount     int64         `json:"gift_amount"`
	Discount       int64         `json:"discount"`
	Coupon         string        `json:"coupon"`
	CouponDiscount int64         `json:"coupon_discount"`
	Commission     int64         `json:"commission,omitempty"`
	Payment        PaymentMethod `json:"payment"`
	FeeAmount      int64         `json:"fee_amount"`
	TradeNo        string        `json:"trade_no"`
	Status         uint8         `json:"status"`
	SubscribeId    int64         `json:"subscribe_id"`
	CreatedAt      int64         `json:"created_at"`
	UpdatedAt      int64         `json:"updated_at"`
}

type OrderDetail

type OrderDetail struct {
	Id             int64         `json:"id"`
	UserId         int64         `json:"user_id"`
	OrderNo        string        `json:"order_no"`
	Type           uint8         `json:"type"`
	Quantity       int64         `json:"quantity"`
	Price          int64         `json:"price"`
	Amount         int64         `json:"amount"`
	GiftAmount     int64         `json:"gift_amount"`
	Discount       int64         `json:"discount"`
	Coupon         string        `json:"coupon"`
	CouponDiscount int64         `json:"coupon_discount"`
	Commission     int64         `json:"commission,omitempty"`
	Payment        PaymentMethod `json:"payment"`
	Method         string        `json:"method"`
	FeeAmount      int64         `json:"fee_amount"`
	TradeNo        string        `json:"trade_no"`
	Status         uint8         `json:"status"`
	SubscribeId    int64         `json:"subscribe_id"`
	Subscribe      Subscribe     `json:"subscribe"`
	CreatedAt      int64         `json:"created_at"`
	UpdatedAt      int64         `json:"updated_at"`
}

type OrdersStatistics

type OrdersStatistics struct {
	Date               string             `json:"date,omitempty"`
	AmountTotal        int64              `json:"amount_total"`
	NewOrderAmount     int64              `json:"new_order_amount"`
	RenewalOrderAmount int64              `json:"renewal_order_amount"`
	List               []OrdersStatistics `json:"list,omitempty"`
}

type PaymentConfig

type PaymentConfig struct {
	Id          int64       `json:"id" validate:"required"`
	Name        string      `json:"name" validate:"required"`
	Platform    string      `json:"platform" validate:"required"`
	Description string      `json:"description"`
	Icon        string      `json:"icon,omitempty"`
	Domain      string      `json:"domain,omitempty"`
	Config      interface{} `json:"config" validate:"required"`
	FeeMode     uint        `json:"fee_mode"`
	FeePercent  int64       `json:"fee_percent,omitempty"`
	FeeAmount   int64       `json:"fee_amount,omitempty"`
	Enable      *bool       `json:"enable" validate:"required"`
}

type PaymentMethod

type PaymentMethod struct {
	Id          int64  `json:"id"`
	Name        string `json:"name"`
	Platform    string `json:"platform"`
	Description string `json:"description"`
	Icon        string `json:"icon"`
	FeeMode     uint   `json:"fee_mode"`
	FeePercent  int64  `json:"fee_percent"`
	FeeAmount   int64  `json:"fee_amount"`
}

type PaymentMethodDetail

type PaymentMethodDetail struct {
	Id          int64       `json:"id"`
	Name        string      `json:"name"`
	Platform    string      `json:"platform"`
	Description string      `json:"description"`
	Icon        string      `json:"icon"`
	Domain      string      `json:"domain"`
	Config      interface{} `json:"config"`
	FeeMode     uint        `json:"fee_mode"`
	FeePercent  int64       `json:"fee_percent"`
	FeeAmount   int64       `json:"fee_amount"`
	Enable      bool        `json:"enable"`
	NotifyURL   string      `json:"notify_url"`
}

type PlatformInfo

type PlatformInfo struct {
	Platform                 string            `json:"platform"`
	PlatformUrl              string            `json:"platform_url"`
	PlatformFieldDescription map[string]string `json:"platform_field_description"`
}

type PlatformResponse

type PlatformResponse struct {
	List []PlatformInfo `json:"list"`
}

type PortalPurchaseRequest

type PortalPurchaseRequest struct {
	AuthType       string `json:"auth_type"`
	Identifier     string `json:"identifier"`
	Password       string `json:"password,omitempty"`
	Payment        int64  `json:"payment"`
	SubscribeId    int64  `json:"subscribe_id"`
	Quantity       int64  `json:"quantity"`
	Coupon         string `json:"coupon,omitempty"`
	InviteCode     string `json:"invite_code,omitempty"`
	TurnstileToken string `json:"turnstile_token,omitempty"`
}

type PortalPurchaseResponse

type PortalPurchaseResponse struct {
	OrderNo string `json:"order_no"`
}

type PreOrderResponse

type PreOrderResponse struct {
	Price          int64  `json:"price"`
	Amount         int64  `json:"amount"`
	Discount       int64  `json:"discount"`
	GiftAmount     int64  `json:"gift_amount"`
	Coupon         string `json:"coupon"`
	CouponDiscount int64  `json:"coupon_discount"`
	FeeAmount      int64  `json:"fee_amount"`
}

type PrePurchaseOrderRequest

type PrePurchaseOrderRequest struct {
	Payment     int64  `json:"payment,omitempty"`
	SubscribeId int64  `json:"subscribe_id"`
	Quantity    int64  `json:"quantity"`
	Coupon      string `json:"coupon,omitempty"`
}

type PrePurchaseOrderResponse

type PrePurchaseOrderResponse struct {
	Price          int64  `json:"price"`
	Amount         int64  `json:"amount"`
	Discount       int64  `json:"discount"`
	Coupon         string `json:"coupon"`
	CouponDiscount int64  `json:"coupon_discount"`
	FeeAmount      int64  `json:"fee_amount"`
}

type PreRenewalOrderResponse

type PreRenewalOrderResponse struct {
	OrderNo string `json:"orderNo"`
}

type PreUnsubscribeRequest

type PreUnsubscribeRequest struct {
	Id int64 `json:"id"`
}

type PreUnsubscribeResponse

type PreUnsubscribeResponse struct {
	DeductionAmount int64 `json:"deduction_amount"`
}

type PreViewNodeMultiplierResponse added in v1.1.4

type PreViewNodeMultiplierResponse struct {
	CurrentTime string  `json:"current_time"`
	Ratio       float32 `json:"ratio"`
}

type PreviewSubscribeTemplateRequest added in v1.0.4

type PreviewSubscribeTemplateRequest struct {
	Id int64 `form:"id"`
}

type PreviewSubscribeTemplateResponse added in v1.0.4

type PreviewSubscribeTemplateResponse struct {
	Template string `json:"template"` // 预览的模板内容
}

type PrivacyPolicyConfig

type PrivacyPolicyConfig struct {
	PrivacyPolicy string `json:"privacy_policy"`
}

type Protocol added in v1.1.0

type Protocol struct {
	Type                    string  `json:"type"`
	Port                    uint16  `json:"port"`
	Enable                  bool    `json:"enable"`
	Security                string  `json:"security,omitempty"`
	SNI                     string  `json:"sni,omitempty"`
	AllowInsecure           bool    `json:"allow_insecure,omitempty"`
	Fingerprint             string  `json:"fingerprint,omitempty"`
	RealityServerAddr       string  `json:"reality_server_addr,omitempty"`
	RealityServerPort       int     `json:"reality_server_port,omitempty"`
	RealityPrivateKey       string  `json:"reality_private_key,omitempty"`
	RealityPublicKey        string  `json:"reality_public_key,omitempty"`
	RealityShortId          string  `json:"reality_short_id,omitempty"`
	Transport               string  `json:"transport,omitempty"`
	Host                    string  `json:"host,omitempty"`
	Path                    string  `json:"path,omitempty"`
	ServiceName             string  `json:"service_name,omitempty"`
	Cipher                  string  `json:"cipher,omitempty"`
	ServerKey               string  `json:"server_key,omitempty"`
	Flow                    string  `json:"flow,omitempty"`
	HopPorts                string  `json:"hop_ports,omitempty"`
	HopInterval             int     `json:"hop_interval,omitempty"`
	ObfsPassword            string  `json:"obfs_password,omitempty"`
	DisableSNI              bool    `json:"disable_sni,omitempty"`
	ReduceRtt               bool    `json:"reduce_rtt,omitempty"`
	UDPRelayMode            string  `json:"udp_relay_mode,omitempty"`
	CongestionController    string  `json:"congestion_controller,omitempty"`
	Multiplex               string  `json:"multiplex,omitempty"`                 // mux, eg: off/low/medium/high
	PaddingScheme           string  `json:"padding_scheme,omitempty"`            // padding scheme
	UpMbps                  int     `json:"up_mbps,omitempty"`                   // upload speed limit
	DownMbps                int     `json:"down_mbps,omitempty"`                 // download speed limit
	Obfs                    string  `json:"obfs,omitempty"`                      // obfs, 'none', 'http', 'tls'
	ObfsHost                string  `json:"obfs_host,omitempty"`                 // obfs host
	ObfsPath                string  `json:"obfs_path,omitempty"`                 // obfs path
	XhttpMode               string  `json:"xhttp_mode,omitempty"`                // xhttp mode
	XhttpExtra              string  `json:"xhttp_extra,omitempty"`               // xhttp extra path
	Encryption              string  `json:"encryption,omitempty"`                // encryption,'none', 'mlkem768x25519plus'
	EncryptionMode          string  `json:"encryption_mode,omitempty"`           // encryption mode,'native', 'xorpub', 'random'
	EncryptionRtt           string  `json:"encryption_rtt,omitempty"`            // encryption rtt,'0rtt', '1rtt'
	EncryptionTicket        string  `json:"encryption_ticket,omitempty"`         // encryption ticket
	EncryptionServerPadding string  `json:"encryption_server_padding,omitempty"` // encryption server padding
	EncryptionPrivateKey    string  `json:"encryption_private_key,omitempty"`    // encryption private key
	EncryptionClientPadding string  `json:"encryption_client_padding,omitempty"` // encryption client padding
	EncryptionPassword      string  `json:"encryption_password,omitempty"`       // encryption password
	Ratio                   float64 `json:"ratio,omitempty"`                     // Traffic ratio, default is 1
	CertMode                string  `json:"cert_mode,omitempty"`                 // Certificate mode, `none`|`http`|`dns`|`self`
	CertDNSProvider         string  `json:"cert_dns_provider,omitempty"`         // DNS provider for certificate
	CertDNSEnv              string  `json:"cert_dns_env,omitempty"`              // Environment for DNS provider
}

type PubilcRegisterConfig

type PubilcRegisterConfig struct {
	StopRegister            bool  `json:"stop_register"`
	EnableIpRegisterLimit   bool  `json:"enable_ip_register_limit"`
	IpRegisterLimit         int64 `json:"ip_register_limit"`
	IpRegisterLimitDuration int64 `json:"ip_register_limit_duration"`
}

type PubilcVerifyCodeConfig

type PubilcVerifyCodeConfig struct {
	VerifyCodeInterval int64 `json:"verify_code_interval"`
}

type PurchaseOrderRequest

type PurchaseOrderRequest struct {
	SubscribeId int64  `json:"subscribe_id"`
	Quantity    int64  `json:"quantity" validate:"required,gt=0"`
	Payment     int64  `json:"payment,omitempty"`
	Coupon      string `json:"coupon,omitempty"`
}

type PurchaseOrderResponse

type PurchaseOrderResponse struct {
	OrderNo string `json:"order_no"`
}

type QueryAnnouncementRequest

type QueryAnnouncementRequest struct {
	Page   int   `form:"page"`
	Size   int   `form:"size"`
	Pinned *bool `form:"pinned"`
	Popup  *bool `form:"popup"`
}

type QueryAnnouncementResponse

type QueryAnnouncementResponse struct {
	Total int64          `json:"total"`
	List  []Announcement `json:"announcements"`
}

type QueryDocumentDetailRequest

type QueryDocumentDetailRequest struct {
	Id int64 `form:"id" validate:"required"`
}

type QueryDocumentListResponse

type QueryDocumentListResponse struct {
	Total int64      `json:"total"`
	List  []Document `json:"list"`
}

type QueryIPLocationRequest added in v1.2.0

type QueryIPLocationRequest struct {
	IP string `form:"ip" validate:"required"`
}

type QueryIPLocationResponse added in v1.2.0

type QueryIPLocationResponse struct {
	Country string `json:"country"`
	Region  string `json:"region,omitempty"`
	City    string `json:"city"`
}

type QueryNodeTagResponse added in v1.1.0

type QueryNodeTagResponse struct {
	Tags []string `json:"tags"`
}

type QueryOrderDetailRequest

type QueryOrderDetailRequest struct {
	OrderNo string `form:"order_no" validate:"required"`
}

type QueryOrderListRequest

type QueryOrderListRequest struct {
	Page int `form:"page" validate:"required"`
	Size int `form:"size" validate:"required"`
}

type QueryOrderListResponse

type QueryOrderListResponse struct {
	Total int64         `json:"total"`
	List  []OrderDetail `json:"list"`
}

type QueryPurchaseOrderRequest

type QueryPurchaseOrderRequest struct {
	AuthType   string `form:"auth_type"`
	Identifier string `form:"identifier"`
	OrderNo    string `form:"order_no"`
}

type QueryPurchaseOrderResponse

type QueryPurchaseOrderResponse struct {
	OrderNo        string        `json:"order_no"`
	Subscribe      Subscribe     `json:"subscribe"`
	Quantity       int64         `json:"quantity"`
	Price          int64         `json:"price"`
	Amount         int64         `json:"amount"`
	Discount       int64         `json:"discount"`
	Coupon         string        `json:"coupon"`
	CouponDiscount int64         `json:"coupon_discount"`
	FeeAmount      int64         `json:"fee_amount"`
	Payment        PaymentMethod `json:"payment"`
	Status         uint8         `json:"status"`
	CreatedAt      int64         `json:"created_at"`
	Token          string        `json:"token,omitempty"`
}

type QueryQuotaTaskListRequest added in v1.1.0

type QueryQuotaTaskListRequest struct {
	Page   int    `form:"page"`
	Size   int    `form:"size"`
	Status *uint8 `form:"status,omitempty"`
}

type QueryQuotaTaskListResponse added in v1.1.0

type QueryQuotaTaskListResponse struct {
	Total int64       `json:"total"`
	List  []QuotaTask `json:"list"`
}

type QueryQuotaTaskPreCountRequest added in v1.1.0

type QueryQuotaTaskPreCountRequest struct {
	Subscribers []int64 `json:"subscribers"`
	IsActive    *bool   `json:"is_active"`
	StartTime   int64   `json:"start_time"`
	EndTime     int64   `json:"end_time"`
}

type QueryQuotaTaskPreCountResponse added in v1.1.0

type QueryQuotaTaskPreCountResponse struct {
	Count int64 `json:"count"`
}

type QueryQuotaTaskStatusRequest added in v1.1.0

type QueryQuotaTaskStatusRequest struct {
	Id int64 `json:"id"`
}

type QueryQuotaTaskStatusResponse added in v1.1.0

type QueryQuotaTaskStatusResponse struct {
	Status  uint8  `json:"status"`
	Current int64  `json:"current"`
	Total   int64  `json:"total"`
	Errors  string `json:"errors"`
}

type QueryServerConfigRequest added in v1.1.0

type QueryServerConfigRequest struct {
	ServerID  int64    `path:"server_id"`
	SecretKey string   `form:"secret_key"`
	Protocols []string `form:"protocols,omitempty"`
}

type QueryServerConfigResponse added in v1.1.0

type QueryServerConfigResponse struct {
	TrafficReportThreshold int64          `json:"traffic_report_threshold"`
	IPStrategy             string         `json:"ip_strategy"`
	DNS                    []NodeDNS      `json:"dns"`
	Block                  []string       `json:"block"`
	Outbound               []NodeOutbound `json:"outbound"`
	Protocols              []Protocol     `json:"protocols"`
	Total                  int64          `json:"total"`
}

type QuerySubscribeGroupListResponse

type QuerySubscribeGroupListResponse struct {
	List  []SubscribeGroup `json:"list"`
	Total int64            `json:"total"`
}

type QuerySubscribeListRequest added in v1.1.0

type QuerySubscribeListRequest struct {
	Language string `form:"language"`
}

type QuerySubscribeListResponse

type QuerySubscribeListResponse struct {
	List  []Subscribe `json:"list"`
	Total int64       `json:"total"`
}

type QueryUserAffiliateCountResponse

type QueryUserAffiliateCountResponse struct {
	Registers       int64 `json:"registers"`
	TotalCommission int64 `json:"total_commission"`
}

type QueryUserAffiliateListRequest

type QueryUserAffiliateListRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type QueryUserAffiliateListResponse

type QueryUserAffiliateListResponse struct {
	List  []UserAffiliate `json:"list"`
	Total int64           `json:"total"`
}

type QueryUserBalanceLogListResponse

type QueryUserBalanceLogListResponse struct {
	List  []BalanceLog `json:"list"`
	Total int64        `json:"total"`
}

type QueryUserCommissionLogListRequest

type QueryUserCommissionLogListRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type QueryUserCommissionLogListResponse

type QueryUserCommissionLogListResponse struct {
	List  []CommissionLog `json:"list"`
	Total int64           `json:"total"`
}

type QueryUserSubscribeListResponse

type QueryUserSubscribeListResponse struct {
	List  []UserSubscribe `json:"list"`
	Total int64           `json:"total"`
}

type QueryUserSubscribeNodeListResponse added in v1.1.8

type QueryUserSubscribeNodeListResponse struct {
	List []UserSubscribeInfo `json:"list"`
}

type QueryWithdrawalLogListRequest added in v1.2.0

type QueryWithdrawalLogListRequest struct {
	Page int `form:"page"`
	Size int `form:"size"`
}

type QueryWithdrawalLogListResponse added in v1.2.0

type QueryWithdrawalLogListResponse struct {
	List  []WithdrawalLog `json:"list"`
	Total int64           `json:"total"`
}

type QuotaTask added in v1.1.0

type QuotaTask struct {
	Id           int64   `json:"id"`
	Subscribers  []int64 `json:"subscribers"`
	IsActive     *bool   `json:"is_active"`
	StartTime    int64   `json:"start_time"`
	EndTime      int64   `json:"end_time"`
	ResetTraffic bool    `json:"reset_traffic"`
	Days         uint64  `json:"days"`
	GiftType     uint8   `json:"gift_type"`
	GiftValue    uint64  `json:"gift_value"`
	Objects      []int64 `json:"objects"` // UserSubscribe IDs
	Status       uint8   `json:"status"`
	Total        int64   `json:"total"`
	Current      int64   `json:"current"`
	Errors       string  `json:"errors"`
	CreatedAt    int64   `json:"created_at"`
	UpdatedAt    int64   `json:"updated_at"`
}

type RechargeOrderRequest

type RechargeOrderRequest struct {
	Amount  int64 `json:"amount"`
	Payment int64 `json:"payment"`
}

type RechargeOrderResponse

type RechargeOrderResponse struct {
	OrderNo string `json:"order_no"`
}

type RegisterConfig

type RegisterConfig struct {
	StopRegister            bool   `json:"stop_register"`
	EnableTrial             bool   `json:"enable_trial"`
	TrialSubscribe          int64  `json:"trial_subscribe"`
	TrialTime               int64  `json:"trial_time"`
	TrialTimeUnit           string `json:"trial_time_unit"`
	EnableIpRegisterLimit   bool   `json:"enable_ip_register_limit"`
	IpRegisterLimit         int64  `json:"ip_register_limit"`
	IpRegisterLimitDuration int64  `json:"ip_register_limit_duration"`
}

type RegisterLog added in v1.1.0

type RegisterLog struct {
	UserId     int64  `json:"user_id"`
	AuthMethod string `json:"auth_method"`
	Identifier string `json:"identifier"`
	RegisterIP string `json:"register_ip"`
	UserAgent  string `json:"user_agent"`
	Timestamp  int64  `json:"timestamp"`
}

type RenewalOrderRequest

type RenewalOrderRequest struct {
	UserSubscribeID int64  `json:"user_subscribe_id"`
	Quantity        int64  `json:"quantity"`
	Payment         int64  `json:"payment"`
	Coupon          string `json:"coupon,omitempty"`
}

type RenewalOrderResponse

type RenewalOrderResponse struct {
	OrderNo string `json:"order_no"`
}

type ResetAllSubscribeTokenResponse added in v1.2.0

type ResetAllSubscribeTokenResponse struct {
	Success bool `json:"success"`
}

type ResetPasswordRequest

type ResetPasswordRequest struct {
	Identifier string `json:"identifier"`
	Email      string `json:"email" validate:"required"`
	Password   string `json:"password" validate:"required"`
	Code       string `json:"code,optional"`
	IP         string `header:"X-Original-Forwarded-For"`
	UserAgent  string `header:"User-Agent"`
	LoginType  string `header:"Login-Type"`
	CfToken    string `json:"cf_token,optional"`
}

type ResetSortRequest added in v1.1.0

type ResetSortRequest struct {
	Sort []SortItem `json:"sort"`
}

type ResetSubscribeLog added in v1.1.0

type ResetSubscribeLog struct {
	Type            uint16 `json:"type"`
	UserId          int64  `json:"user_id"`
	UserSubscribeId int64  `json:"user_subscribe_id"`
	OrderNo         string `json:"order_no,omitempty"`
	Timestamp       int64  `json:"timestamp"`
}

type ResetSubscribeTrafficLog added in v1.1.0

type ResetSubscribeTrafficLog struct {
	Id              int64  `json:"id"`
	Type            uint16 `json:"type"`
	UserSubscribeId int64  `json:"user_subscribe_id"`
	OrderNo         string `json:"order_no,omitempty"`
	Timestamp       int64  `json:"timestamp"`
}

type ResetTrafficOrderRequest

type ResetTrafficOrderRequest struct {
	UserSubscribeID int64 `json:"user_subscribe_id"`
	Payment         int64 `json:"payment"`
}

type ResetTrafficOrderResponse

type ResetTrafficOrderResponse struct {
	OrderNo string `json:"order_no"`
}

type ResetUserSubscribeTokenRequest

type ResetUserSubscribeTokenRequest struct {
	UserSubscribeId int64 `json:"user_subscribe_id"`
}

type ResetUserSubscribeTrafficRequest added in v1.2.3

type ResetUserSubscribeTrafficRequest struct {
	UserSubscribeId int64 `json:"user_subscribe_id"`
}

type RevenueStatisticsResponse

type RevenueStatisticsResponse struct {
	Today   OrdersStatistics `json:"today"`
	Monthly OrdersStatistics `json:"monthly"`
	All     OrdersStatistics `json:"all"`
}

type SecurityConfig

type SecurityConfig struct {
	SNI               string `json:"sni"`
	AllowInsecure     *bool  `json:"allow_insecure"`
	Fingerprint       string `json:"fingerprint"`
	RealityServerAddr string `json:"reality_server_addr"`
	RealityServerPort int    `json:"reality_server_port"`
	RealityPrivateKey string `json:"reality_private_key"`
	RealityPublicKey  string `json:"reality_public_key"`
	RealityShortId    string `json:"reality_short_id"`
}

type SendCodeRequest

type SendCodeRequest struct {
	Email string `json:"email" validate:"required"`
	Type  uint8  `json:"type" validate:"required"`
}

type SendCodeResponse

type SendCodeResponse struct {
	Code   string `json:"code,omitempty"`
	Status bool   `json:"status"`
}

type SendSmsCodeRequest

type SendSmsCodeRequest struct {
	Type              uint8  `json:"type" validate:"required"`
	Telephone         string `json:"telephone" validate:"required"`
	TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
}

type Server

type Server struct {
	Id             int64        `json:"id"`
	Name           string       `json:"name"`
	Country        string       `json:"country"`
	City           string       `json:"city"`
	Address        string       `json:"address"`
	Sort           int          `json:"sort"`
	Protocols      []Protocol   `json:"protocols"`
	LastReportedAt int64        `json:"last_reported_at"`
	Status         ServerStatus `json:"status"`
	CreatedAt      int64        `json:"created_at"`
	UpdatedAt      int64        `json:"updated_at"`
}

type ServerBasic

type ServerBasic struct {
	PushInterval int64 `json:"push_interval"`
	PullInterval int64 `json:"pull_interval"`
}

type ServerCommon

type ServerCommon struct {
	Protocol  string `form:"protocol"`
	ServerId  int64  `form:"server_id"`
	SecretKey string `form:"secret_key"`
}

type ServerGroup

type ServerGroup struct {
	Id          int64  `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedAt   int64  `json:"created_at"`
	UpdatedAt   int64  `json:"updated_at"`
}

type ServerOnlineIP added in v1.1.0

type ServerOnlineIP struct {
	IP       string `json:"ip"`
	Protocol string `json:"protocol"`
}

type ServerOnlineUser added in v1.1.0

type ServerOnlineUser struct {
	IP          []ServerOnlineIP `json:"ip"`
	UserId      int64            `json:"user_id"`
	Subscribe   string           `json:"subscribe"`
	SubscribeId int64            `json:"subscribe_id"`
	Traffic     int64            `json:"traffic"`
	ExpiredAt   int64            `json:"expired_at"`
}

type ServerPushStatusRequest

type ServerPushStatusRequest struct {
	ServerCommon
	Cpu       float64 `json:"cpu"`
	Mem       float64 `json:"mem"`
	Disk      float64 `json:"disk"`
	UpdatedAt int64   `json:"updated_at"`
}

type ServerPushUserTrafficRequest

type ServerPushUserTrafficRequest struct {
	ServerCommon
	Traffic []UserTraffic `json:"traffic"`
}

type ServerRuleGroup

type ServerRuleGroup struct {
	Id        int64    `json:"id"`
	Icon      string   `json:"icon"`
	Name      string   `json:"name" validate:"required"`
	Type      string   `json:"type"`
	Tags      []string `json:"tags"`
	Rules     string   `json:"rules"`
	Enable    bool     `json:"enable"`
	Default   bool     `json:"default"`
	CreatedAt int64    `json:"created_at"`
	UpdatedAt int64    `json:"updated_at"`
}

type ServerStatus added in v1.1.0

type ServerStatus struct {
	Cpu      float64            `json:"cpu"`
	Mem      float64            `json:"mem"`
	Disk     float64            `json:"disk"`
	Protocol string             `json:"protocol"`
	Online   []ServerOnlineUser `json:"online"`
	Status   string             `json:"status"`
}

type ServerTotalDataResponse

type ServerTotalDataResponse struct {
	OnlineUsers                   int64               `json:"online_users"`
	OnlineServers                 int64               `json:"online_servers"`
	OfflineServers                int64               `json:"offline_servers"`
	TodayUpload                   int64               `json:"today_upload"`
	TodayDownload                 int64               `json:"today_download"`
	MonthlyUpload                 int64               `json:"monthly_upload"`
	MonthlyDownload               int64               `json:"monthly_download"`
	UpdatedAt                     int64               `json:"updated_at"`
	ServerTrafficRankingToday     []ServerTrafficData `json:"server_traffic_ranking_today"`
	ServerTrafficRankingYesterday []ServerTrafficData `json:"server_traffic_ranking_yesterday"`
	UserTrafficRankingToday       []UserTrafficData   `json:"user_traffic_ranking_today"`
	UserTrafficRankingYesterday   []UserTrafficData   `json:"user_traffic_ranking_yesterday"`
}

type ServerTrafficData

type ServerTrafficData struct {
	ServerId int64  `json:"server_id"`
	Name     string `json:"name"`
	Upload   int64  `json:"upload"`
	Download int64  `json:"download"`
}

type ServerTrafficLog added in v1.1.0

type ServerTrafficLog struct {
	ServerId int64  `json:"server_id"` // Server ID
	Upload   int64  `json:"upload"`    // Upload traffic in bytes
	Download int64  `json:"download"`  // Download traffic in bytes
	Total    int64  `json:"total"`     // Total traffic in bytes (Upload + Download)
	Date     string `json:"date"`      // Date in YYYY-MM-DD format
	Details  bool   `json:"details"`   // Whether to show detailed traffic
}

type ServerUser

type ServerUser struct {
	Id          int64  `json:"id"`
	UUID        string `json:"uuid"`
	SpeedLimit  int64  `json:"speed_limit"`
	DeviceLimit int64  `json:"device_limit"`
}

type SetNodeMultiplierRequest

type SetNodeMultiplierRequest struct {
	Periods []TimePeriod `json:"periods"`
}

type Shadowsocks

type Shadowsocks struct {
	Method    string `json:"method" validate:"required"`
	Port      int    `json:"port" validate:"required"`
	ServerKey string `json:"server_key"`
}

type ShadowsocksProtocol

type ShadowsocksProtocol struct {
	Port   int    `json:"port"`
	Method string `json:"method"`
}

type SiteConfig

type SiteConfig struct {
	Host       string `json:"host"`
	SiteName   string `json:"site_name"`
	SiteDesc   string `json:"site_desc"`
	Keywords   string `json:"keywords"`
	CustomHTML string `json:"custom_html"`
	CustomData string `json:"custom_data"`
}

type SiteCustomDataContacts

type SiteCustomDataContacts struct {
	Email     string `json:"email"`
	Telephone string `json:"telephone"`
	Address   string `json:"address"`
}

type SortItem

type SortItem struct {
	Id   int64 `json:"id" validate:"required"`
	Sort int64 `json:"sort" validate:"required"`
}

type StopBatchSendEmailTaskRequest added in v1.0.4

type StopBatchSendEmailTaskRequest struct {
	Id int64 `json:"id"`
}

type StripePayment

type StripePayment struct {
	Method         string `json:"method"`
	ClientSecret   string `json:"client_secret"`
	PublishableKey string `json:"publishable_key"`
}

type Subscribe

type Subscribe struct {
	Id                int64               `json:"id"`
	Name              string              `json:"name"`
	Language          string              `json:"language"`
	Description       string              `json:"description"`
	UnitPrice         int64               `json:"unit_price"`
	UnitTime          string              `json:"unit_time"`
	Discount          []SubscribeDiscount `json:"discount"`
	Replacement       int64               `json:"replacement"`
	Inventory         int64               `json:"inventory"`
	Traffic           int64               `json:"traffic"`
	SpeedLimit        int64               `json:"speed_limit"`
	DeviceLimit       int64               `json:"device_limit"`
	Quota             int64               `json:"quota"`
	Nodes             []int64             `json:"nodes"`
	NodeTags          []string            `json:"node_tags"`
	Show              bool                `json:"show"`
	Sell              bool                `json:"sell"`
	Sort              int64               `json:"sort"`
	DeductionRatio    int64               `json:"deduction_ratio"`
	AllowDeduction    bool                `json:"allow_deduction"`
	ResetCycle        int64               `json:"reset_cycle"`
	RenewalReset      bool                `json:"renewal_reset"`
	ShowOriginalPrice bool                `json:"show_original_price"`
	CreatedAt         int64               `json:"created_at"`
	UpdatedAt         int64               `json:"updated_at"`
}

type SubscribeApplication added in v1.0.4

type SubscribeApplication struct {
	Id                int64        `json:"id"`
	Name              string       `json:"name"`
	Description       string       `json:"description,omitempty"`
	Icon              string       `json:"icon,omitempty"`
	Scheme            string       `json:"scheme,omitempty"`
	UserAgent         string       `json:"user_agent"`
	IsDefault         bool         `json:"is_default"`
	SubscribeTemplate string       `json:"template"`
	OutputFormat      string       `json:"output_format"`
	DownloadLink      DownloadLink `json:"download_link,omitempty"`
	CreatedAt         int64        `json:"created_at"`
	UpdatedAt         int64        `json:"updated_at"`
}

type SubscribeClient added in v1.0.4

type SubscribeClient struct {
	Id           int64        `json:"id"`
	Name         string       `json:"name"`
	Description  string       `json:"description,omitempty"`
	Icon         string       `json:"icon,omitempty"`
	Scheme       string       `json:"scheme,omitempty"`
	IsDefault    bool         `json:"is_default"`
	DownloadLink DownloadLink `json:"download_link,omitempty"`
}

type SubscribeConfig

type SubscribeConfig struct {
	SingleModel     bool   `json:"single_model"`
	SubscribePath   string `json:"subscribe_path"`
	SubscribeDomain string `json:"subscribe_domain"`
	PanDomain       bool   `json:"pan_domain"`
	UserAgentLimit  bool   `json:"user_agent_limit"`
	UserAgentList   string `json:"user_agent_list"`
}

type SubscribeDiscount

type SubscribeDiscount struct {
	Quantity int64   `json:"quantity"`
	Discount float64 `json:"discount"`
}

type SubscribeGroup

type SubscribeGroup struct {
	Id          int64  `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedAt   int64  `json:"created_at"`
	UpdatedAt   int64  `json:"updated_at"`
}

type SubscribeItem

type SubscribeItem struct {
	Subscribe
	Sold int64 `json:"sold"`
}

type SubscribeLog added in v1.1.0

type SubscribeLog struct {
	UserId          int64  `json:"user_id"`
	Token           string `json:"token"`
	UserAgent       string `json:"user_agent"`
	ClientIP        string `json:"client_ip"`
	UserSubscribeId int64  `json:"user_subscribe_id"`
	Timestamp       int64  `json:"timestamp"`
}

type SubscribeRequest

type SubscribeRequest struct {
	Flag   string
	Token  string
	Type   string
	UA     string
	Params map[string]string
}

type SubscribeResponse

type SubscribeResponse struct {
	Config []byte
	Header string
}

type SubscribeSortRequest

type SubscribeSortRequest struct {
	Sort []SortItem `json:"sort"`
}

type SubscribeType

type SubscribeType struct {
	SubscribeTypes []string `json:"subscribe_types"`
}

type TelegramConfig

type TelegramConfig struct {
	TelegramBotToken      string `json:"telegram_bot_token"`
	TelegramGroupUrl      string `json:"telegram_group_url"`
	TelegramNotify        bool   `json:"telegram_notify"`
	TelegramWebHookDomain string `json:"telegram_web_hook_domain"`
}

type TelephoneCheckUserRequest

type TelephoneCheckUserRequest struct {
	Telephone         string `form:"telephone" validate:"required"`
	TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
}

type TelephoneCheckUserResponse

type TelephoneCheckUserResponse struct {
	Exist bool `json:"exist"`
}

type TelephoneLoginRequest

type TelephoneLoginRequest struct {
	Identifier        string `json:"identifier"`
	Telephone         string `json:"telephone" validate:"required"`
	TelephoneCode     string `json:"telephone_code"`
	TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
	Password          string `json:"password"`
	IP                string `header:"X-Original-Forwarded-For"`
	UserAgent         string `header:"User-Agent"`
	LoginType         string `header:"Login-Type"`
	CfToken           string `json:"cf_token,optional"`
}

type TelephoneRegisterRequest

type TelephoneRegisterRequest struct {
	Identifier        string `json:"identifier"`
	Telephone         string `json:"telephone" validate:"required"`
	TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
	Password          string `json:"password" validate:"required"`
	Invite            string `json:"invite,optional"`
	Code              string `json:"code,optional"`
	IP                string `header:"X-Original-Forwarded-For"`
	UserAgent         string `header:"User-Agent"`
	LoginType         string `header:"Login-Type,optional"`
	CfToken           string `json:"cf_token,optional"`
}

type TelephoneResetPasswordRequest

type TelephoneResetPasswordRequest struct {
	Identifier        string `json:"identifier"`
	Telephone         string `json:"telephone" validate:"required"`
	TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
	Password          string `json:"password" validate:"required"`
	Code              string `json:"code,optional"`
	IP                string `header:"X-Original-Forwarded-For"`
	UserAgent         string `header:"User-Agent"`
	LoginType         string `header:"Login-Type,optional"`
	CfToken           string `json:"cf_token,optional"`
}

type TestEmailSendRequest

type TestEmailSendRequest struct {
	Email string `json:"email" validate:"required"`
}

type TestSmsSendRequest

type TestSmsSendRequest struct {
	AreaCode  string `json:"area_code" validate:"required"`
	Telephone string `json:"telephone" validate:"required"`
}

type Ticket

type Ticket struct {
	Id          int64    `json:"id"`
	Title       string   `json:"title"`
	Description string   `json:"description"`
	UserId      int64    `json:"user_id"`
	Follows     []Follow `json:"follow,omitempty"`
	Status      uint8    `json:"status"`
	CreatedAt   int64    `json:"created_at"`
	UpdatedAt   int64    `json:"updated_at"`
}

type TicketWaitRelpyResponse

type TicketWaitRelpyResponse struct {
	Count int64 `json:"count"`
}

type TimePeriod

type TimePeriod struct {
	StartTime  string  `json:"start_time"`
	EndTime    string  `json:"end_time"`
	Multiplier float32 `json:"multiplier"`
}

type ToggleNodeStatusRequest added in v1.1.0

type ToggleNodeStatusRequest struct {
	Id     int64 `json:"id"`
	Enable *bool `json:"enable"`
}

type ToggleUserSubscribeStatusRequest added in v1.2.3

type ToggleUserSubscribeStatusRequest struct {
	UserSubscribeId int64 `json:"user_subscribe_id"`
}

type TosConfig

type TosConfig struct {
	TosContent string `json:"tos_content"`
}

type TrafficLog

type TrafficLog struct {
	Id          int64 `json:"id"`
	ServerId    int64 `json:"server_id"`
	UserId      int64 `json:"user_id"`
	SubscribeId int64 `json:"subscribe_id"`
	Download    int64 `json:"download"`
	Upload      int64 `json:"upload"`
	Timestamp   int64 `json:"timestamp"`
}

type TrafficLogDetails added in v1.1.0

type TrafficLogDetails struct {
	Id          int64 `json:"id"`
	ServerId    int64 `json:"server_id"`
	UserId      int64 `json:"user_id"`
	SubscribeId int64 `json:"subscribe_id"`
	Download    int64 `json:"download"`
	Upload      int64 `json:"upload"`
	Timestamp   int64 `json:"timestamp"`
}

type TransportConfig

type TransportConfig struct {
	Path        string `json:"path"`
	Host        string `json:"host"`
	ServiceName string `json:"service_name"`
}

type Trojan

type Trojan struct {
	Port            int             `json:"port" validate:"required"`
	Transport       string          `json:"transport" validate:"required"`
	TransportConfig TransportConfig `json:"transport_config"`
	Security        string          `json:"security" validate:"required"`
	SecurityConfig  SecurityConfig  `json:"security_config"`
}

type TrojanProtocol

type TrojanProtocol struct {
	Host      string `json:"host"`
	Port      int    `json:"port"`
	EnableTLS *bool  `json:"enable_tls"`
	TLSConfig string `json:"tls_config"`
	Network   string `json:"network"`
	Transport string `json:"transport"`
}

type Tuic

type Tuic struct {
	Port                 int            `json:"port" validate:"required"`
	DisableSNI           bool           `json:"disable_sni"`
	ReduceRtt            bool           `json:"reduce_rtt"`
	UDPRelayMode         string         `json:"udp_relay_mode"`
	CongestionController string         `json:"congestion_controller"`
	SecurityConfig       SecurityConfig `json:"security_config"`
}

type UnbindDeviceRequest added in v1.1.8

type UnbindDeviceRequest struct {
	Id int64 `json:"id" validate:"required"`
}

type UnbindOAuthRequest

type UnbindOAuthRequest struct {
	Method string `json:"method"`
}

type UnsubscribeRequest

type UnsubscribeRequest struct {
	Id int64 `json:"id"`
}

type UpdateAdsRequest

type UpdateAdsRequest struct {
	Id          int64  `json:"id"`
	Title       string `json:"title"`
	Type        string `json:"type"`
	Content     string `json:"content"`
	Description string `json:"description"`
	TargetURL   string `json:"target_url"`
	StartTime   int64  `json:"start_time"`
	EndTime     int64  `json:"end_time"`
	Status      int    `json:"status"`
}

type UpdateAnnouncementEnableRequest

type UpdateAnnouncementEnableRequest struct {
	Id     int64 `json:"id" validate:"required"`
	Enable *bool `json:"enable" validate:"required"`
}

type UpdateAnnouncementRequest

type UpdateAnnouncementRequest struct {
	Id      int64  `json:"id" validate:"required"`
	Title   string `json:"title"`
	Content string `json:"content"`
	Show    *bool  `json:"show"`
	Pinned  *bool  `json:"pinned"`
	Popup   *bool  `json:"popup"`
}

type UpdateAuthMethodConfigRequest

type UpdateAuthMethodConfigRequest struct {
	Id      int64       `json:"id"`
	Method  string      `json:"method"`
	Config  interface{} `json:"config"`
	Enabled *bool       `json:"enabled"`
}

type UpdateBindEmailRequest

type UpdateBindEmailRequest struct {
	Email string `json:"email" validate:"required"`
}

type UpdateBindMobileRequest

type UpdateBindMobileRequest struct {
	AreaCode string `json:"area_code" validate:"required"`
	Mobile   string `json:"mobile" validate:"required"`
	Code     string `json:"code" validate:"required"`
}

type UpdateCouponRequest

type UpdateCouponRequest struct {
	Id         int64   `json:"id" validate:"required"`
	Name       string  `json:"name" validate:"required"`
	Code       string  `json:"code,omitempty"`
	Count      int64   `json:"count,omitempty"`
	Type       uint8   `json:"type" validate:"required"`
	Discount   int64   `json:"discount" validate:"required"`
	StartTime  int64   `json:"start_time" validate:"required"`
	ExpireTime int64   `json:"expire_time" validate:"required"`
	UserLimit  int64   `json:"user_limit,omitempty"`
	Subscribe  []int64 `json:"subscribe,omitempty"`
	UsedCount  int64   `json:"used_count,omitempty"`
	Enable     *bool   `json:"enable,omitempty"`
}

type UpdateDocumentRequest

type UpdateDocumentRequest struct {
	Id      int64    `json:"id" validate:"required"`
	Title   string   `json:"title" validate:"required"`
	Content string   `json:"content" validate:"required"`
	Tags    []string `json:"tags,omitempty" `
	Show    *bool    `json:"show"`
}

type UpdateNodeRequest

type UpdateNodeRequest struct {
	Id       int64    `json:"id"`
	Name     string   `json:"name"`
	Tags     []string `json:"tags,omitempty"`
	Port     uint16   `json:"port"`
	Address  string   `json:"address"`
	ServerId int64    `json:"server_id"`
	Protocol string   `json:"protocol"`
	Enabled  *bool    `json:"enabled"`
}

type UpdateOrderStatusRequest

type UpdateOrderStatusRequest struct {
	Id        int64  `json:"id" validate:"required"`
	Status    uint8  `json:"status" validate:"required"`
	PaymentId int64  `json:"payment_id,omitempty"`
	TradeNo   string `json:"trade_no,omitempty"`
}

type UpdatePaymentMethodRequest

type UpdatePaymentMethodRequest struct {
	Id          int64       `json:"id" validate:"required"`
	Name        string      `json:"name" validate:"required"`
	Platform    string      `json:"platform" validate:"required"`
	Description string      `json:"description"`
	Icon        string      `json:"icon,omitempty"`
	Domain      string      `json:"domain,omitempty"`
	Config      interface{} `json:"config" validate:"required"`
	FeeMode     uint        `json:"fee_mode"`
	FeePercent  int64       `json:"fee_percent,omitempty"`
	FeeAmount   int64       `json:"fee_amount,omitempty"`
	Enable      *bool       `json:"enable" validate:"required"`
}

type UpdateServerRequest added in v1.1.0

type UpdateServerRequest struct {
	Id        int64      `json:"id"`
	Name      string     `json:"name"`
	Country   string     `json:"country,omitempty"`
	City      string     `json:"city,omitempty"`
	Address   string     `json:"address"`
	Sort      int        `json:"sort,omitempty"`
	Protocols []Protocol `json:"protocols"`
}

type UpdateSubscribeApplicationRequest added in v1.0.4

type UpdateSubscribeApplicationRequest struct {
	Id                int64        `json:"id"`
	Name              string       `json:"name"`
	Description       string       `json:"description,omitempty"`
	Icon              string       `json:"icon,omitempty"`
	Scheme            string       `json:"scheme,omitempty"`
	UserAgent         string       `json:"user_agent"`
	IsDefault         bool         `json:"is_default"`
	SubscribeTemplate string       `json:"template"`
	OutputFormat      string       `json:"output_format"`
	DownloadLink      DownloadLink `json:"download_link,omitempty"`
}

type UpdateSubscribeGroupRequest

type UpdateSubscribeGroupRequest struct {
	Id          int64  `json:"id" validate:"required"`
	Name        string `json:"name" validate:"required"`
	Description string `json:"description"`
}

type UpdateSubscribeRequest

type UpdateSubscribeRequest struct {
	Id                int64               `json:"id" validate:"required"`
	Name              string              `json:"name" validate:"required"`
	Language          string              `json:"language"`
	Description       string              `json:"description"`
	UnitPrice         int64               `json:"unit_price"`
	UnitTime          string              `json:"unit_time"`
	Discount          []SubscribeDiscount `json:"discount"`
	Replacement       int64               `json:"replacement"`
	Inventory         int64               `json:"inventory"`
	Traffic           int64               `json:"traffic"`
	SpeedLimit        int64               `json:"speed_limit"`
	DeviceLimit       int64               `json:"device_limit"`
	Quota             int64               `json:"quota"`
	Nodes             []int64             `json:"nodes"`
	NodeTags          []string            `json:"node_tags"`
	Show              *bool               `json:"show"`
	Sell              *bool               `json:"sell"`
	Sort              int64               `json:"sort"`
	DeductionRatio    int64               `json:"deduction_ratio"`
	AllowDeduction    *bool               `json:"allow_deduction"`
	ResetCycle        int64               `json:"reset_cycle"`
	RenewalReset      *bool               `json:"renewal_reset"`
	ShowOriginalPrice bool                `json:"show_original_price"`
}

type UpdateTicketStatusRequest

type UpdateTicketStatusRequest struct {
	Id     int64  `json:"id" validate:"required"`
	Status *uint8 `json:"status" validate:"required"`
}

type UpdateUserAuthMethodRequest

type UpdateUserAuthMethodRequest struct {
	UserId         int64  `json:"user_id"`
	AuthType       string `json:"auth_type"`
	AuthIdentifier string `json:"auth_identifier"`
}

type UpdateUserBasiceInfoRequest

type UpdateUserBasiceInfoRequest struct {
	UserId             int64  `json:"user_id" validate:"required"`
	Password           string `json:"password"`
	Avatar             string `json:"avatar"`
	Balance            int64  `json:"balance"`
	Commission         int64  `json:"commission"`
	ReferralPercentage uint8  `json:"referral_percentage"`
	OnlyFirstPurchase  bool   `json:"only_first_purchase"`
	GiftAmount         int64  `json:"gift_amount"`
	Telegram           int64  `json:"telegram"`
	ReferCode          string `json:"refer_code"`
	RefererId          int64  `json:"referer_id"`
	Enable             bool   `json:"enable"`
	IsAdmin            bool   `json:"is_admin"`
}

type UpdateUserNotifyRequest

type UpdateUserNotifyRequest struct {
	EnableBalanceNotify   *bool `json:"enable_balance_notify"`
	EnableLoginNotify     *bool `json:"enable_login_notify"`
	EnableSubscribeNotify *bool `json:"enable_subscribe_notify"`
	EnableTradeNotify     *bool `json:"enable_trade_notify"`
}

type UpdateUserNotifySettingRequest

type UpdateUserNotifySettingRequest struct {
	UserId                int64 `json:"user_id" validate:"required"`
	EnableBalanceNotify   bool  `json:"enable_balance_notify"`
	EnableLoginNotify     bool  `json:"enable_login_notify"`
	EnableSubscribeNotify bool  `json:"enable_subscribe_notify"`
	EnableTradeNotify     bool  `json:"enable_trade_notify"`
}

type UpdateUserPasswordRequest

type UpdateUserPasswordRequest struct {
	Password string `json:"password" validate:"required"`
}

type UpdateUserRulesRequest added in v1.2.0

type UpdateUserRulesRequest struct {
	Rules []string `json:"rules" validate:"required"`
}

type UpdateUserSubscribeNoteRequest added in v1.2.0

type UpdateUserSubscribeNoteRequest struct {
	UserSubscribeId int64  `json:"user_subscribe_id" validate:"required"`
	Note            string `json:"note" validate:"max=500"`
}

type UpdateUserSubscribeRequest

type UpdateUserSubscribeRequest struct {
	UserSubscribeId int64 `json:"user_subscribe_id"`
	SubscribeId     int64 `json:"subscribe_id"`
	Traffic         int64 `json:"traffic"`
	ExpiredAt       int64 `json:"expired_at"`
	Upload          int64 `json:"upload"`
	Download        int64 `json:"download"`
}

type UpdateUserTicketStatusRequest

type UpdateUserTicketStatusRequest struct {
	Id     int64  `json:"id" validate:"required"`
	Status *uint8 `json:"status" validate:"required"`
}

type User

type User struct {
	Id                    int64            `json:"id"`
	Avatar                string           `json:"avatar"`
	Balance               int64            `json:"balance"`
	Commission            int64            `json:"commission"`
	ReferralPercentage    uint8            `json:"referral_percentage"`
	OnlyFirstPurchase     bool             `json:"only_first_purchase"`
	GiftAmount            int64            `json:"gift_amount"`
	Telegram              int64            `json:"telegram"`
	ReferCode             string           `json:"refer_code"`
	RefererId             int64            `json:"referer_id"`
	Enable                bool             `json:"enable"`
	IsAdmin               bool             `json:"is_admin,omitempty"`
	EnableBalanceNotify   bool             `json:"enable_balance_notify"`
	EnableLoginNotify     bool             `json:"enable_login_notify"`
	EnableSubscribeNotify bool             `json:"enable_subscribe_notify"`
	EnableTradeNotify     bool             `json:"enable_trade_notify"`
	AuthMethods           []UserAuthMethod `json:"auth_methods"`
	UserDevices           []UserDevice     `json:"user_devices"`
	Rules                 []string         `json:"rules"`
	CreatedAt             int64            `json:"created_at"`
	UpdatedAt             int64            `json:"updated_at"`
	DeletedAt             int64            `json:"deleted_at,omitempty"`
}

type UserAffiliate

type UserAffiliate struct {
	Avatar       string `json:"avatar"`
	Identifier   string `json:"identifier"`
	RegisteredAt int64  `json:"registered_at"`
	Enable       bool   `json:"enable"`
}

type UserAuthMethod

type UserAuthMethod struct {
	AuthType       string `json:"auth_type"`
	AuthIdentifier string `json:"auth_identifier"`
	Verified       bool   `json:"verified"`
}

type UserDevice

type UserDevice struct {
	Id         int64  `json:"id"`
	Ip         string `json:"ip"`
	Identifier string `json:"identifier"`
	UserAgent  string `json:"user_agent"`
	Online     bool   `json:"online"`
	Enabled    bool   `json:"enabled"`
	CreatedAt  int64  `json:"created_at"`
	UpdatedAt  int64  `json:"updated_at"`
}

type UserLoginLog

type UserLoginLog struct {
	Id        int64  `json:"id"`
	UserId    int64  `json:"user_id"`
	LoginIP   string `json:"login_ip"`
	UserAgent string `json:"user_agent"`
	Success   bool   `json:"success"`
	Timestamp int64  `json:"timestamp"`
}

type UserLoginRequest

type UserLoginRequest struct {
	Identifier string `json:"identifier"`
	Email      string `json:"email" validate:"required"`
	Password   string `json:"password" validate:"required"`
	IP         string `header:"X-Original-Forwarded-For"`
	UserAgent  string `header:"User-Agent"`
	LoginType  string `header:"Login-Type"`
	CfToken    string `json:"cf_token,optional"`
}

type UserRegisterRequest

type UserRegisterRequest struct {
	Identifier string `json:"identifier"`
	Email      string `json:"email" validate:"required"`
	Password   string `json:"password" validate:"required"`
	Invite     string `json:"invite,optional"`
	Code       string `json:"code,optional"`
	IP         string `header:"X-Original-Forwarded-For"`
	UserAgent  string `header:"User-Agent"`
	LoginType  string `header:"Login-Type"`
	CfToken    string `json:"cf_token,optional"`
}

type UserStatistics

type UserStatistics struct {
	Date              string           `json:"date,omitempty"`
	Register          int64            `json:"register"`
	NewOrderUsers     int64            `json:"new_order_users"`
	RenewalOrderUsers int64            `json:"renewal_order_users"`
	List              []UserStatistics `json:"list,omitempty"`
}

type UserStatisticsResponse

type UserStatisticsResponse struct {
	Today   UserStatistics `json:"today"`
	Monthly UserStatistics `json:"monthly"`
	All     UserStatistics `json:"all"`
}

type UserSubscribe

type UserSubscribe struct {
	Id          int64     `json:"id"`
	UserId      int64     `json:"user_id"`
	OrderId     int64     `json:"order_id"`
	SubscribeId int64     `json:"subscribe_id"`
	Subscribe   Subscribe `json:"subscribe"`
	StartTime   int64     `json:"start_time"`
	ExpireTime  int64     `json:"expire_time"`
	FinishedAt  int64     `json:"finished_at"`
	ResetTime   int64     `json:"reset_time"`
	Traffic     int64     `json:"traffic"`
	Download    int64     `json:"download"`
	Upload      int64     `json:"upload"`
	Token       string    `json:"token"`
	Status      uint8     `json:"status"`
	Short       string    `json:"short"`
	CreatedAt   int64     `json:"created_at"`
	UpdatedAt   int64     `json:"updated_at"`
}

type UserSubscribeDetail

type UserSubscribeDetail struct {
	Id          int64     `json:"id"`
	UserId      int64     `json:"user_id"`
	User        User      `json:"user"`
	OrderId     int64     `json:"order_id"`
	SubscribeId int64     `json:"subscribe_id"`
	Subscribe   Subscribe `json:"subscribe"`
	StartTime   int64     `json:"start_time"`
	ExpireTime  int64     `json:"expire_time"`
	ResetTime   int64     `json:"reset_time"`
	Traffic     int64     `json:"traffic"`
	Download    int64     `json:"download"`
	Upload      int64     `json:"upload"`
	Token       string    `json:"token"`
	Status      uint8     `json:"status"`
	CreatedAt   int64     `json:"created_at"`
	UpdatedAt   int64     `json:"updated_at"`
}

type UserSubscribeInfo added in v1.1.8

type UserSubscribeInfo struct {
	Id          int64                    `json:"id"`
	UserId      int64                    `json:"user_id"`
	OrderId     int64                    `json:"order_id"`
	SubscribeId int64                    `json:"subscribe_id"`
	StartTime   int64                    `json:"start_time"`
	ExpireTime  int64                    `json:"expire_time"`
	FinishedAt  int64                    `json:"finished_at"`
	ResetTime   int64                    `json:"reset_time"`
	Traffic     int64                    `json:"traffic"`
	Download    int64                    `json:"download"`
	Upload      int64                    `json:"upload"`
	Token       string                   `json:"token"`
	Status      uint8                    `json:"status"`
	CreatedAt   int64                    `json:"created_at"`
	UpdatedAt   int64                    `json:"updated_at"`
	IsTryOut    bool                     `json:"is_try_out"`
	Nodes       []*UserSubscribeNodeInfo `json:"nodes"`
}

type UserSubscribeLog

type UserSubscribeLog struct {
	Id              int64  `json:"id"`
	UserId          int64  `json:"user_id"`
	UserSubscribeId int64  `json:"user_subscribe_id"`
	Token           string `json:"token"`
	IP              string `json:"ip"`
	UserAgent       string `json:"user_agent"`
	Timestamp       int64  `json:"timestamp"`
}

type UserSubscribeNodeInfo added in v1.1.8

type UserSubscribeNodeInfo struct {
	Id        int64    `json:"id"`
	Name      string   `json:"name"`
	Uuid      string   `json:"uuid"`
	Protocol  string   `json:"protocol"`
	Port      uint16   `json:"port"`
	Address   string   `json:"address"`
	Tags      []string `json:"tags"`
	Country   string   `json:"country"`
	City      string   `json:"city"`
	CreatedAt int64    `json:"created_at"`
}

type UserSubscribeTrafficLog added in v1.1.0

type UserSubscribeTrafficLog struct {
	SubscribeId int64  `json:"subscribe_id"` // Subscribe ID
	UserId      int64  `json:"user_id"`      // User ID
	Upload      int64  `json:"upload"`       // Upload traffic in bytes
	Download    int64  `json:"download"`     // Download traffic in bytes
	Total       int64  `json:"total"`        // Total traffic in bytes (Upload + Download)
	Date        string `json:"date"`         // Date in YYYY-MM-DD format
	Details     bool   `json:"details"`      // Whether to show detailed traffic
}

type UserTraffic

type UserTraffic struct {
	SID      int64 `json:"uid"`
	Upload   int64 `json:"upload"`
	Download int64 `json:"download"`
}

type UserTrafficData

type UserTrafficData struct {
	SID      int64 `json:"sid"`
	Upload   int64 `json:"upload"`
	Download int64 `json:"download"`
}

type VeifyConfig

type VeifyConfig struct {
	TurnstileSiteKey          string `json:"turnstile_site_key"`
	EnableLoginVerify         bool   `json:"enable_login_verify"`
	EnableRegisterVerify      bool   `json:"enable_register_verify"`
	EnableResetPasswordVerify bool   `json:"enable_reset_password_verify"`
}

type VerifyCodeConfig

type VerifyCodeConfig struct {
	VerifyCodeExpireTime int64 `json:"verify_code_expire_time"`
	VerifyCodeLimit      int64 `json:"verify_code_limit"`
	VerifyCodeInterval   int64 `json:"verify_code_interval"`
}

type VerifyConfig

type VerifyConfig struct {
	TurnstileSiteKey          string `json:"turnstile_site_key"`
	TurnstileSecret           string `json:"turnstile_secret"`
	EnableLoginVerify         bool   `json:"enable_login_verify"`
	EnableRegisterVerify      bool   `json:"enable_register_verify"`
	EnableResetPasswordVerify bool   `json:"enable_reset_password_verify"`
}

type VerifyEmailRequest

type VerifyEmailRequest struct {
	Email string `json:"email" validate:"required"`
	Code  string `json:"code" validate:"required"`
}

type VersionResponse added in v1.0.4

type VersionResponse struct {
	Version string `json:"version"`
}

type Vless

type Vless struct {
	Port            int             `json:"port" validate:"required"`
	Flow            string          `json:"flow" validate:"required"`
	Transport       string          `json:"transport" validate:"required"`
	TransportConfig TransportConfig `json:"transport_config"`
	Security        string          `json:"security" validate:"required"`
	SecurityConfig  SecurityConfig  `json:"security_config"`
}

type VlessProtocol

type VlessProtocol struct {
	Host           string `json:"host"`
	Port           int    `json:"port"`
	Network        string `json:"network"`
	Transport      string `json:"transport"`
	Security       string `json:"security"`
	SecurityConfig string `json:"security_config"`
	XTLS           string `json:"xtls"`
}

type Vmess

type Vmess struct {
	Port            int             `json:"port" validate:"required"`
	Transport       string          `json:"transport" validate:"required"`
	TransportConfig TransportConfig `json:"transport_config"`
	Security        string          `json:"security" validate:"required"`
	SecurityConfig  SecurityConfig  `json:"security_config"`
}

type VmessProtocol

type VmessProtocol struct {
	Host      string `json:"host"`
	Port      int    `json:"port"`
	EnableTLS *bool  `json:"enable_tls"`
	TLSConfig string `json:"tls_config"`
	Network   string `json:"network"`
	Transport string `json:"transport"`
}

type WithdrawalLog added in v1.2.0

type WithdrawalLog struct {
	Id        int64  `json:"id"`
	UserId    int64  `json:"user_id"`
	Amount    int64  `json:"amount"`
	Content   string `json:"content"`
	Status    uint8  `json:"status"`
	Reason    string `json:"reason,omitempty"`
	CreatedAt int64  `json:"created_at"`
	UpdatedAt int64  `json:"updated_at"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL