grim/paytreon

Add all the v2 types
draft
2019-04-10, Gary Kramlich
8b3c6c709f2b
Add all the v2 types
package paytreon
import (
"encoding/json"
)
type Address struct {
ID string `jsonapi:"primary,address"`
Addressee string `jsonapi:"attr,addressee"`
Line1 string `jsonapi:"attr,line_1"`
Line2 string `jsonapi:"attr,line_2"`
PostalCode string `jsonapi:"attr,postal_code"`
City string `jsonapi:"attr,city"`
State string `jsonapi:"attr,state"`
Country string `jsonapi:"attr,country"`
PhoneNumber string `jsonapi:"attr,phone_number"`
CreatedAt string `jsonapi:"attr,created_at"`
User *User `jsonapi:"relation,user,omitempty"`
Campaigns []*Campaign `jsonapi:"relation,campaigns,omitempty"`
}
type Benefit struct {
ID string `jsonapi:"attr,primary,benefit"`
Title string `jsonapi:"attr,title"`
Description string `jsonapi:"attr,description"`
BenefitType string `jsonapi:"attr,benefit_type"`
RuleType string `jsonapi:"attr,rule_type"`
CreatedAt string `jsonapi:"attr,created_at"`
DeliveredDeliverablesCount int `jsonapi:"attr,delivered_deliverables_count"`
NotDeliveredDeliverablesCount int `jsonapi:"attr,not_delivered_deliverables_count"`
DeliverablesDueTodayCount int `jsonapi:"attr,deliverables_due_today_count"`
NextDeliverableDueDate string `jsonapi:"attr,next_deliverable_due_date"`
TiersCount int `jsonapi:"attr,tiers_count"`
IsDeleted bool `jsonapi:"attr,is_deleted"`
IsPublished bool `jsonapi:"attr,is_published"`
AppExternalID string `jsonapi:"attr,app_external_id"`
AppMeta *json.RawMessage `jsonapi:"attr,app_meta"`
Tiers []*Tier `jsonapi:"relation,tiers,omitempty"`
Deliverables []*Deliverable `jsonapi:"relation,deliverables,omitempty"`
Campaign *Campaign `jsonapi:"relation,compaign,omitempty"`
// CampaignInstallation *CampaignInstallation `jsonapi:"relation,campaign_installation"`
}
type Campaign struct {
ID string `jsonapi:"primary,campaign"`
Summary string `jsonapi:"attr,summary"`
CreationName string `jsonapi:"attr,creation_name"`
PayPerName string `jsonapi:"attr,pay_per_name"`
OneLiner string `jsonapi:"attr,one_liner"`
MainVideoEmbed string `jsonapi:"attr,main_video_embed"`
MainVideoURL string `jsonapi:"attr,main_video_url"`
ImageURL string `jsonapi:"attr,image_url"`
ImageSmallURL string `jsonapi:"attr,image_small_url"`
ThanksVideoURL string `jsonapi:"attr,thanks_video_url"`
ThanksEmbed string `jsonapi:"attr,thanks_embed"`
ThanksMsg string `jsonapi:"attr,thanks_msg"`
IsMonthly bool `jsonapi:"attr,is_monthly"`
HasRss bool `jsonapi:"attr,has_rss"`
HasSentRssNotify bool `jsonapi:"attr,has_sent_rss_notify"`
RssFeedTitle string `jsonapi:"attr,rss_feed_title"`
RssArtworkURL string `jsonapi:"attr,rss_artwork_url"`
IsNsfw bool `jsonapi:"attr,is_nsfw"`
IsChargedImmediately bool `jsonapi:"attr,is_charged_immediately"`
CreatedAt string `jsonapi:"attr,created_at"`
PublishedAt string `jsonapi:"attr,published_at"`
PledgeURL string `jsonapi:"attr,pledge_url"`
PatronCount int `jsonapi:"attr,patron_count"`
DiscordServerID string `jsonapi:"attr,discord_service_id"`
GoogleAnalyticsID string `jsonapi:"attr,google_analytics_id"`
EarningsVisibility string `jsonapi:"attr,earnings_visibility"`
Tiers []*Tier `jsonapi:"relation,tiers,omitempty"`
Creator *User `jsonapi:"relation,creator,omitempty"`
Benefits []*Benefit `jsonapi:"relation,benefits,omitempty"`
Goals []*Goal `jsonapi:"relation,goals,omitempty"`
}
type Deliverable struct {
ID string `jsonapi:"primary,deliverable"`
CompletedAt string `jsonapi:"attr,completed_at"`
DeliveryStatus string `jsonapi:"attr,delivery_status"`
DueAt string `jsonapi:"attr,due_at"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
Benefit *Benefit `jsonapi:"relation,benefit,omitempty"`
Member *Member `jsonapi:"relation,member,omitempty"`
User *User `jsonapi:"relation,user,omitempty"`
}
type Goal struct {
ID string `jsonapi:"primary,goal"`
AmountCents int `jsonapi:"attr,amount_cents"`
Title string `jsonapi:"attr,title"`
Description string `jsonapi:"attr,description"`
CreatedAt string `jsonapi:"attr,created_at"`
ReachedAt string `jsonapi:"attr,reached_at"`
CompletedPercentage int `jsonapi:"attr,completed_percentage"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
}
type Media struct {
ID string `jsonapi:"primary,media"`
Filename string `jsonapi:"attr,file_name"`
SizeBytes int `jsonapi:"attr,size_bytes"`
MimeType string `jsonapi:"attr,mimetype"`
State string `jsonapi:"attr,state"`
OwnerType string `jsonapi:"attr,owner_type"`
OwnerID string `jsonapi:"attr,owner_id"`
OwnerRelationship string `jsonapi:"attr,owner_relationship"`
UploadExpiresAt string `jsonapi:"attr,upload_expires_at"`
UploadURL string `jsonapi:"attr,upload_url"`
UploadParameters *json.RawMessage `jsonapi:"attr,upload_parameters"`
DownloadURL string `jsonapi:"attr,download_url"`
CreatedAt string `jsonapi:"attr,created_at"`
Metadata *json.RawMessage `jsonapi:"attr,metadata"`
}
type Member struct {
ID string `jsonapi:"primary,member"`
PatronStatus string `jsonapi:"attr,patron_status"`
IsFollower bool `jsonapi:"attr,is_follower"`
FullName string `jsonapi:"attr,full_name"`
Email string `jsonapi:"attr,email"`
PledgeRelationshipStart string `jsonapi:"attr,pledge_relationship_start"`
LifetimeSupportCents int `jsonapi:"attr,lifetime_support_cents"`
CurrentlyEntitledAmountCents int `jsonapi:"attr,currently_entitled_amount_cents"`
LastChargeDate string `jsonapi:"attr,last_charge_date"`
LastChargeStatus string `jsonapi:"attr,last_charge_status"`
Note string `jsonapi:"attr,note"`
WillPayAmountCents int `jsonapi:"attr,will_pay_amount_cents"`
Address *Address `jsonapi:"relation,address"`
Campaign *Campaign `jsonapi:"relation,campaign"`
CurrentlyEntitledTiers []*Tier `jsonapi:"relation,currently_entitled_tiers"`
User *User `jsonapi:"relation,user"`
}
type OAuthClient struct {
ID string `jsonapi:"primary,oauthclient"`
ClientSecret string `jsonapi:"attr,client_secret"`
Name string `jsonapi:"attr,name"`
Description string `jsonapi:"attr,description"`
AuthorName string `jsonapi:"attr,author_name"`
Domain string `jsonapi:"attr,domain"`
Version int `jsonapi:"attr,version"`
IconURL string `jsonapi:"attr,icon_url"`
PrivacyPolicyURL string `jsonapi:"attr,privacy_policy_url"`
TosURL string `jsonapi:"attr,tos_url"`
RedirectURIs string `jsonapi:"attr,redirect_uris"`
DefaultScopes string `jsonapi:"attr,default_scopes"`
User *User `jsonapi:"relation,user,omitempty"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
CreatorToken string `jsonapi:"relation,creator_token,omitempty"`
Apps []*PlatformApp `jsonapi:"relation,apps,omitempty"`
}
type Tier struct {
ID string `jsonapi:"primary,tier"`
AmountCents int `jsonapi:"attr,amount_cents"`
UserLimit int `jsonapi:"attr,user_limit"`
Remaining int `jsonapi:"attr,remaining"`
Description string `jsonapi:"attr,description"`
RequiresShipping bool `jsonapi:"attr,requires_shipping"`
CreatedAt string `jsonapi:"attr,created_at"`
URL string `jsonapi:"attr,url"`
PatronCount int `jsonapi:"attr,patron_count"`
PostCount int `jsonapi:"attr,post_count"`
DiscordRoleIDs *json.RawMessage `jsonapi:"attr,discord_role_ids"`
Title string `jsonapi:"attr,title"`
ImageURL string `jsonapi:"attr,image_url"`
EditedAt string `jsonapi:"attr,edited_at"`
Published bool `jsonapi:"attr,published"`
PublishedAt string `jsonapi:"attr,published_at"`
UnpublishedAt string `jsonapi:"attr,unpublished_at"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
TierImage *Media `jsonapi:"relation,tier_image,omitempty"`
Benefits []*Benefit `jsonapi:"relation,benefits,omitempty"`
}
type User struct {
ID string `jsonapi:"primary,user"`
Email string `jsonapi:"attr,email"`
FirstName string `jsonapi:"attr,first_name"`
LastName string `jsonapi:"attr,last_name"`
FullName string `jsonapi:"attr,full_name"`
IsEmailVerified bool `jsonapi:"attr,is_email_verified"`
Vanity string `jsonapi:"attr,vanity"`
About string `jsonapi:"attr,about"`
ImageURL string `jsonapi:"attr,image_url"`
ThumbURL string `jsonapi:"attr,thumb_url"`
CanSeeNSFW bool `jsonapi:"attr,can_see_nsfw"`
Created string `jsonapi:"attr,created"`
URL string `jsonapi:"attr,url"`
LikeCount int `jsonapi:"attr,like_count"`
HidePledges bool `jsonapi:"attr,hide_pledges"`
SocialConnections *json.RawMessage `jsonapi:"attr,social_connections"`
Memberships []*Member `jsonapi:"relation,memberships,omitempty"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
}
type Webhook struct {
ID string `jsonapi:"primary,webhook"`
Triggers []string `jsonapi:"attr,triggers"`
URI string `jsonapi:"attr,uri"`
Paused bool `jsonapi:"attr,paused"`
LastAttemptedAt string `jsonapi:"attr,last_attempted_at"`
NumConsecutiveTimesFailed int `jsonapi:"attr,num_consecutive_times_failed"`
Secret string `jsonapi:"attr,secret"`
Client *OAuthClient `jsonapi:"relation,client,omitempty"`
Campaign *Campaign `jsonapi:"relation,campaign,omitempty"`
}