export function formatPatronUsername (first_name: string, last_name: string) { return `${first_name || ''} ${last_name || ''}`.trim() } export interface Reward { id: string; type: "reward"; attributes: { amount_cents: number; created_at: string; description: string; discord_role_ids: any | null; edited_at: string; image_url: string | null; patron_count: number; post_count: number | null; published: boolean; published_at: string; remaining: number | null; requires_shipping: boolean; title: string; unpublished_at: string | null; url: string; user_limit: number | null; }; } export interface Patron { id: string; full_name: string; } export type PublicPatron = { id: string; // User ID of the patron full_name: string; // Full name of the patron, pulled from included data link?: string; }; namespace Patreon { export interface APIResponse { data: { id: string; relationships: { currently_entitled_tiers: { data: { id: string; type: string }[]; }; user: { data: { id: string; type: string }; }; }; type: string; }[]; included: { id: string; type: string; attributes: { full_name?: string; }; }[]; meta: { count: number; pagination: { cursors: { next?: string; } } }; } export interface Pledge { id: string; type: "pledge"; attributes: { amount_cents: number; created_at: string; declined_since: string | null; patron_pays_fees: boolean; pledge_cap_cents: number | null; }; relationships: { patron: { data: { id: string; type: "user"; }; links: { related: string; }; }; reward: { data: { id: string; type: "reward"; }; links: { related: string; }; }; }; } export interface User { id: string; type: "user"; attributes: { about: string; created: string; email: string; facebook: string | null; first_name: string; full_name: string; gender: number; image_url: string; is_email_verified: boolean; last_name: string; social_connections: SocialConnections; thumb_url: string; twitch: string | null; twitter: string | null; url: string; vanity: string; youtube: string | null; }; } export interface SocialConnections { deviantart: string | null; discord: string | null; facebook: string | null; reddit: string | null; spotify: string | null; twitch: string | null; twitter: string | null; youtube: string | null; } export interface Reward { id: string; type: "reward"; attributes: { amount_cents: number; created_at: string; description: string; discord_role_ids: any | null; edited_at: string; image_url: string | null; patron_count: number; post_count: number | null; published: boolean; published_at: string; remaining: number | null; requires_shipping: boolean; title: string; unpublished_at: string | null; url: string; user_limit: number | null; }; } } export const cjClippyPatreonCampaignId = '8012692' export const tiers = { everyone: '-1', free: '10620388', archiveSupporter: '8154170', stealthSupporter: '9561793', tuneItUp: '9184994', maxQ: '22529959', archiveCollector: '8154171', advancedArchiveSupporter: '8686045', quantumSupporter: '8694826', sneakyQuantumSupporter: '9560538', luberPlusPlus: '8686022' }