sync/structs/fansly.go
2025-05-20 13:01:02 -04:00

80 lines
3.0 KiB
Go

package structs
type FanslyBaseResponse[T any] struct {
Success bool `json:"success"` // Indicates if the request was successful
Response T `json:"response"` // The response data, type of T
}
type FanslyBaseResponseAsArray[T any] struct {
Success bool `json:"success"` // Indicates if the request was successful
Response []T `json:"response"` // The response data, type of T
}
type FanslyAccountResponse struct {
Account FanslyAccount `json:"account"`
}
type FanslyFollowResponse struct {
FollowerID string `json:"followerId"` // The ID of the follower
}
type FanslySubscriptionResponse struct {
Subscriptions []Subscription `json:"subscriptions"` // List of subscriptions
Stats SubStats `json:"stats"` // Subscription statistics
}
type SubStats struct {
TotalActive int `json:"totalActive"`
TotalExpired int `json:"totalExpired"`
Total int `json:"total"`
}
type Subscription struct {
ID string `json:"id"`
HistoryID string `json:"historyId"`
SubscriberID string `json:"subscriberId"`
SubscriptionTierID string `json:"subscriptionTierId"`
SubscriptionTierName string `json:"subscriptionTierName"`
SubscriptionTierColor string `json:"subscriptionTierColor"`
PlanID string `json:"planId"`
PromoID string `json:"promoId"`
GiftCodeID any `json:"giftCodeId"`
PaymentMethodID string `json:"paymentMethodId"`
Status int `json:"status"`
Price int `json:"price"`
RenewPrice int `json:"renewPrice"`
RenewCorrelationID string `json:"renewCorrelationId"`
AutoRenew int `json:"autoRenew"`
BillingCycle int `json:"billingCycle"`
Duration int `json:"duration"`
RenewDate int64 `json:"renewDate"`
Version int `json:"version"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
EndsAt int64 `json:"endsAt"`
PromoPrice any `json:"promoPrice"`
PromoDuration any `json:"promoDuration"`
PromoStatus any `json:"promoStatus"`
PromoStartsAt any `json:"promoStartsAt"`
PromoEndsAt any `json:"promoEndsAt"`
}
type FanslyAccount struct {
ID string `json:"id"`
Email string `json:"email"`
Username string `json:"username"`
DisplayName string `json:"displayName,omitempty"`
Flags int `json:"flags"`
Version int `json:"version"`
CreatedAt int64 `json:"createdAt"`
FollowCount int `json:"followCount"`
SubscriberCount int `json:"subscriberCount"`
AccountMediaLikes int `json:"accountMediaLikes"`
StatusID int `json:"statusId"`
LastSeenAt int `json:"lastSeenAt"`
About string `json:"about,omitempty"`
Location string `json:"location,omitempty"`
PostLikes int `json:"postLikes"`
ProfileAccess bool `json:"profileAccess"`
}