diff --git a/app/src/main/graphql/fragments.graphql b/app/src/main/graphql/fragments.graphql index cb55881e2a..4ec89183a4 100644 --- a/app/src/main/graphql/fragments.graphql +++ b/app/src/main/graphql/fragments.graphql @@ -362,6 +362,24 @@ fragment shippingRule on ShippingRule { } } + + +fragment ppoCard on Backing { + id + amount { + ...amount + } + project { + name + id + slug + ...full + creator { + name + } + } +} + fragment user on User { name id diff --git a/app/src/main/graphql/pledgeProjectsOverview.graphql b/app/src/main/graphql/pledgeProjectsOverview.graphql new file mode 100644 index 0000000000..5d58c04f29 --- /dev/null +++ b/app/src/main/graphql/pledgeProjectsOverview.graphql @@ -0,0 +1,31 @@ +query PledgedProjectsOverview($first: Int, $after: String, $last: Int, $before: String) { + pledgeProjectsOverview { + categories { + count + slug + title + } + pledges(first : $first, after: $after, last : $last, before: $before) { + pageInfo { + endCursor + hasNextPage + hasPreviousPage + startCursor + } + totalCount + edges { + cursor + node { + backing { + ... ppoCard + } + } + } + nodes { + backing { + ... ppoCard + } + } + } + } +} diff --git a/app/src/main/graphql/schema.json b/app/src/main/graphql/schema.json index e190fb68ba..19ebe2dbfc 100644 --- a/app/src/main/graphql/schema.json +++ b/app/src/main/graphql/schema.json @@ -698,6 +698,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pledgeProjectsOverview", + "description": "Provides an overview of pledge projects", + "args": [], + "type": { + "kind": "OBJECT", + "name": "PledgeProjectsOverview", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "post", "description": "Fetches a post given its ID.", @@ -2331,11 +2343,6 @@ "name": "Order", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrderAddress", - "ofType": null - }, { "kind": "OBJECT", "name": "Survey", @@ -4576,6 +4583,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "addressCollectionEnabled", + "description": "Whether or not the creator has enabled address collection", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "aiDisclosure", "description": null, @@ -4652,6 +4671,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "backerAddressLockoutDate", + "description": "The lockout date for address collection", + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "backerAddressLockoutDatePassed", "description": "Whether or not the backer address lockout date has passed.", @@ -4668,6 +4699,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "backerSurvey", + "description": "Backer survey for the project", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BackerSurvey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "backers", "description": "Backers of the project", @@ -5191,6 +5234,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "creatorToolsPaths", + "description": "The paths for the creator tools pages", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatorToolsPaths", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "curatedCollection", "description": "The Curated Collection that a project is in e.g. Make 100", @@ -5466,37 +5525,37 @@ "deprecationReason": null }, { - "name": "fulfillmentTool", - "description": "The project's selected fulfillment tool", + "name": "fulfillmentModalDismissedAt", + "description": "When the fulfillment modal was dismissed", "args": [], "type": { - "kind": "OBJECT", - "name": "ProjectFulfillmentTool", + "kind": "SCALAR", + "name": "DateTime", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "fulfillmentToolOptions", - "description": "List of fulfillment tools available to creator based on hrc status", + "name": "fulfillmentStatus", + "description": "Status of fulfillment", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "FulfillmentPlatformEnum", - "ofType": null - } - } - } + "kind": "ENUM", + "name": "FulfillmentStatus", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fulfillmentStatusUpdatedAt", + "description": "When the fulfillment status was updated", + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -5585,6 +5644,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "hasItemQuestionsOrOptions", + "description": "Whether or not the project has at least one item-level question or option", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "hasRewardImages", "description": "Whether or not the project has reward images", @@ -5633,6 +5708,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "hasSurveyQuestionsOrSelections", + "description": "Whether or not the project has at least one item-level question, item-level option selection, or project-level question", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "id", "description": null, @@ -5877,7 +5968,18 @@ { "name": "items", "description": "Items available through the project's backer rewards.", - "args": [], + "args": [ + { + "name": "excludeItemsWithoutRewards", + "description": "Whether to exclude the items that are not attached to any reward or addon.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + } + ], "type": { "kind": "NON_NULL", "name": null, @@ -5938,6 +6040,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "latePledgesEndedAt", + "description": "The datetime at which post-campaign pledging will end. This can be set to a future date if we have automatically scheduled an end to late pledging.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "launchedAt", "description": "When the project launched", @@ -6058,26 +6172,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "nexuses", - "description": "List of locations where the project has a responsibility to remit tax.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Nexus", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "paymentSource", "description": "Payment source on creator's account used to issue refunds.", @@ -6584,6 +6678,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "showSignalOfFulfillmentModal", + "description": "Whether or not to show the signal of fulfillment modal", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "slug", "description": "The project's unique URL identifier.", @@ -8363,6 +8473,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "fulfillingProjects", + "description": "Projects a user has launched that are successful, but have not completed fulfillment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Project", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "hasImage", "description": "If the user has uploaded an avatar.", @@ -8653,6 +8787,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "isGhosting", + "description": "Whether a KSR admin is ghosting as another user", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "isKsrAdmin", "description": "Whether or not you are a KSR admin.", @@ -12610,12 +12756,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "ios_go_rewardless", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "ios_hockey_app", "description": null, @@ -12862,12 +13002,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "go_rewardless", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "how_it_works", "description": null, @@ -13066,12 +13200,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "send_ga_ecommerce_event", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "web_braze", "description": null, @@ -13138,6 +13266,12 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "backer_report_update_2024", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "delay_backer_trust_module_2024", "description": null, @@ -13149,6 +13283,42 @@ "description": null, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "signal_of_fulfillment_2024", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reset_backer_survey_2024", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "disable_shipping_at_pledge", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pledge_projects_overview_2024", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "copy_rewards", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pledge_redemption_v1", + "description": null, + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -14519,6 +14689,12 @@ "description": "Failed to fund by deadline.", "isDeprecated": false, "deprecationReason": null + }, + { + "name": "SUBMITTED", + "description": "Project is submitted and in prelaunch state.", + "isDeprecated": false, + "deprecationReason": null } ], "possibleTypes": null @@ -17517,19 +17693,19 @@ }, { "kind": "OBJECT", - "name": "ProjectBusinessAddressConnection", - "description": "The connection type for BusinessAddress.", + "name": "BackerSurvey", + "description": "A backer survey that a creator sends", "fields": [ { - "name": "edges", - "description": "A list of edges.", + "name": "backersRemaining", + "description": "The number of backers who have not answered the survey", "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "BusinessAddressEdge", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, @@ -17537,15 +17713,15 @@ "deprecationReason": null }, { - "name": "nodes", - "description": "A list of nodes.", + "name": "id", + "description": null, "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "BusinessAddress", + "kind": "SCALAR", + "name": "ID", "ofType": null } }, @@ -17553,24 +17729,95 @@ "deprecationReason": null }, { - "name": "pageInfo", - "description": "Information to aid in pagination.", + "name": "sentAt", + "description": "When the survey was sent", "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + "kind": "SCALAR", + "name": "DateTime", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "totalCount", - "description": null, + "name": "surveyCompletePercentage", + "description": "The percentage of surveys that have been completed", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ProjectBusinessAddressConnection", + "description": "The connection type for BusinessAddress.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BusinessAddressEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodes", + "description": "A list of nodes.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BusinessAddress", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCount", + "description": null, "args": [], "type": { "kind": "NON_NULL", @@ -17754,26 +18001,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "nexuses", - "description": "Nexuses associated with the address.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Nexus", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "postalCode", "description": "The address postal_code", @@ -17814,145 +18041,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "OBJECT", - "name": "Nexus", - "description": "Tax nexus for a project", - "fields": [ - { - "name": "children", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Nexus", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "country", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "effectiveAt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasPermanentEstablishment", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isImporterOfRecord", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "main", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "regionalAuthority", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, { "kind": "ENUM", "name": "CollaboratorPermission", @@ -18254,19 +18342,188 @@ }, { "kind": "OBJECT", - "name": "Country", - "description": "A supported country.", + "name": "Country", + "description": "A supported country.", + "fields": [ + { + "name": "code", + "description": "ISO ALPHA-2 code.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "CountryCode", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Country name.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "regions", + "description": "Regions part of this country", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Region", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stripeAccountSupportedRegions", + "description": "Regions that Stripe supports for Stripe Accounts", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Region", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Region", + "description": "A region inside a country.", + "fields": [ + { + "name": "code", + "description": "Region code.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "Region name.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ProjectSharedDraft", + "description": "A Project that has a generated share token.", + "fields": [ + { + "name": "id", + "description": "The project id of a shared draft", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "name", + "description": "The project name of a shared draft", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreatorToolsPaths", + "description": null, "fields": [ { - "name": "code", - "description": "ISO ALPHA-2 code.", + "name": "advancedAnalyticsPath", + "description": "The advanced analytics path", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "ENUM", - "name": "CountryCode", + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -18274,8 +18531,8 @@ "deprecationReason": null }, { - "name": "name", - "description": "Country name.", + "name": "backerReportPath", + "description": "The backer report path", "args": [], "type": { "kind": "NON_NULL", @@ -18290,59 +18547,40 @@ "deprecationReason": null }, { - "name": "regions", - "description": "Regions part of this country", + "name": "backerSurveyPath", + "description": "The backer survey path", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Region", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "stripeAccountSupportedRegions", - "description": "Regions that Stripe supports for Stripe Accounts", + "name": "collaboratorsPath", + "description": "The project collaborators path", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Region", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Region", - "description": "A region inside a country.", - "fields": [ + }, { - "name": "code", - "description": "Region code.", + "name": "contactPath", + "description": "The contact path", "args": [], "type": { "kind": "NON_NULL", @@ -18357,8 +18595,8 @@ "deprecationReason": null }, { - "name": "name", - "description": "Region name.", + "name": "creatorFaqPath", + "description": "The creator faq path", "args": [], "type": { "kind": "NON_NULL", @@ -18371,21 +18609,10 @@ }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectSharedDraft", - "description": "A Project that has a generated share token.", - "fields": [ + }, { - "name": "id", - "description": "The project id of a shared draft", + "name": "creatorHandbookPath", + "description": "The creator handbook path", "args": [], "type": { "kind": "NON_NULL", @@ -18400,8 +18627,136 @@ "deprecationReason": null }, { - "name": "name", - "description": "The project name of a shared draft", + "name": "dashboardPath", + "description": "The project dashboard path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editRewardsProjectPath", + "description": "The edit rewards project path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fulfillmentDashboardPath", + "description": "The fulfillment dashboard path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "helpResourcesPath", + "description": "The help resources path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "messageThreadsPath", + "description": "The messages thread path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "postsDashboardDraftsPath", + "description": "The draft posts path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "postsDashboardPublishedPath", + "description": "The published posts path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projectBuildPath", + "description": "The project build path", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "projectPath", + "description": "The project path", "args": [], "type": { "kind": "NON_NULL", @@ -19300,87 +19655,46 @@ "possibleTypes": null }, { - "kind": "OBJECT", - "name": "ProjectFulfillmentTool", - "description": "A project's selected fulfillment tool", - "fields": [ + "kind": "ENUM", + "name": "FulfillmentStatus", + "description": "All available fulfillment statuses", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, + "name": "NO_REWARDS_MADE", + "description": "No rewards made; default value", "isDeprecated": false, "deprecationReason": null }, { - "name": "platform", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, + "name": "SOME_REWARDS_MADE", + "description": "Some rewards made", "isDeprecated": false, "deprecationReason": null }, { - "name": "platformType", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "FulfillmentPlatformEnum", - "ofType": null - } - }, + "name": "ALL_REWARDS_MADE", + "description": "All rewards made", "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "FulfillmentPlatformEnum", - "description": "Top level fulfillment platform types, e.g. kickstarter, pledgemanager, or other", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ + }, { - "name": "kickstarter", - "description": "kickstarter", + "name": "FULFILLING_SOME_REWARDS", + "description": "Fulfilling some rewards", "isDeprecated": false, "deprecationReason": null }, { - "name": "pledgemanager", - "description": "pledgemanager", + "name": "FULFILLING_ALL_REWARDS", + "description": "Fulfilling all rewards", "isDeprecated": false, "deprecationReason": null }, { - "name": "other", - "description": "other", + "name": "FULFILLMENT_COMPLETE", + "description": "Fulfillment complete", "isDeprecated": false, "deprecationReason": null } @@ -26290,6 +26604,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "estimatedMax", + "description": "The estimated maximum shipping cost", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Money", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "estimatedMin", + "description": "The estimated minimum shipping cost", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Money", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "hasBackers", "description": "Shipping rule has backers", @@ -26657,6 +26995,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "pledgeAmount", + "description": "Amount for claiming this add-on during the campaign.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Money", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "quantity", "description": "The quantity of the add-on included in a backing.", @@ -26824,9 +27174,21 @@ "description": "The response to the question", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } }, "isDeprecated": false, "deprecationReason": null @@ -31592,7 +31954,7 @@ "args": [], "type": { "kind": "OBJECT", - "name": "OrderAddress", + "name": "Address", "ofType": null }, "isDeprecated": false, @@ -31746,42 +32108,151 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "ENUM", + "name": "OrderStateEnum", + "description": "The state of the order, e.g. draft, submitted, successful, errored, missed.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "draft", + "description": "draft", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "submitted", + "description": "submitted", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "successful", + "description": "successful", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "errored", + "description": "errored", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "missed", + "description": "missed", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, { "kind": "OBJECT", - "name": "OrderAddress", - "description": "An address associated with an order", + "name": "PledgeProjectsOverview", + "description": "Provides an overview of pledge projects", "fields": [ { - "name": "addressLine1", - "description": "The first address line", + "name": "categories", + "description": "List of categories associated with pledge projects", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PledgeProjectsCategories", + "ofType": null + } } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "addressLine2", - "description": "The second address line", + "name": "pledges", + "description": "List of pledged projects", + "args": [ + { + "name": "first", + "description": "Returns the first _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "after", + "description": "Returns the elements in the list that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "last", + "description": "Returns the last _n_ elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "before", + "description": "Returns the elements in the list that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "PledgedProjectsOverviewPledgesConnection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PledgeProjectsCategories", + "description": "Represents a category associated with pledge projects", + "fields": [ + { + "name": "count", + "description": "Count of pledges for this category", "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "city", - "description": "The address city", + "name": "slug", + "description": "Unique identifier for the category", "args": [], "type": { "kind": "SCALAR", @@ -31792,8 +32263,8 @@ "deprecationReason": null }, { - "name": "contactName", - "description": "The address contact name", + "name": "title", + "description": "Title of the category", "args": [], "type": { "kind": "SCALAR", @@ -31802,17 +32273,44 @@ }, "isDeprecated": false, "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PledgedProjectsOverviewPledgesConnection", + "description": "The connection type for PledgeProjectsPledges.", + "fields": [ + { + "name": "edges", + "description": "A list of edges.", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PledgeProjectsPledgesEdge", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null }, { - "name": "country", - "description": "The address country, e.g. US", + "name": "nodes", + "description": "A list of nodes.", "args": [], "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PledgeProjectsPledges", "ofType": null } }, @@ -31820,15 +32318,15 @@ "deprecationReason": null }, { - "name": "id", - "description": null, + "name": "pageInfo", + "description": "Information to aid in pagination.", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "ID", + "kind": "OBJECT", + "name": "PageInfo", "ofType": null } }, @@ -31836,20 +32334,35 @@ "deprecationReason": null }, { - "name": "phoneNumber", - "description": "The address contact's phone number", + "name": "totalCount", + "description": null, "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PledgeProjectsPledgesEdge", + "description": "An edge in a connection.", + "fields": [ { - "name": "postalCode", - "description": "The address postal code", + "name": "cursor", + "description": "A cursor for use in pagination.", "args": [], "type": { "kind": "NON_NULL", @@ -31864,12 +32377,12 @@ "deprecationReason": null }, { - "name": "region", - "description": "The address region, e.g. North Dakota", + "name": "node", + "description": "The item at the end of the edge.", "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PledgeProjectsPledges", "ofType": null }, "isDeprecated": false, @@ -31877,55 +32390,31 @@ } ], "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], + "interfaces": [], "enumValues": null, "possibleTypes": null }, { - "kind": "ENUM", - "name": "OrderStateEnum", - "description": "The state of the order, e.g. draft, submitted, successful, errored, missed.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "draft", - "description": "draft", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submitted", - "description": "submitted", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "successful", - "description": "successful", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "errored", - "description": "errored", - "isDeprecated": false, - "deprecationReason": null - }, + "kind": "OBJECT", + "name": "PledgeProjectsPledges", + "description": "Pledged projects in pledge projects overview", + "fields": [ { - "name": "missed", - "description": "missed", + "name": "backing", + "description": "backing details", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Backing", + "ofType": null + }, "isDeprecated": false, "deprecationReason": null } ], + "inputFields": null, + "interfaces": [], + "enumValues": null, "possibleTypes": null }, { @@ -33126,8 +33615,8 @@ "deprecationReason": null }, { - "name": "createAddress", - "description": "Save a new shipping address.", + "name": "completeOrder", + "description": "Confirm payment and complete the order", "args": [ { "name": "input", @@ -33137,7 +33626,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateAddressInput", + "name": "CompleteOrderInput", "ofType": null } }, @@ -33146,15 +33635,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateAddressPayload", + "name": "CompleteOrderPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createApplePayBacking", - "description": "[DEPRECATED in favor of CreateBackingType] Create a checkout with Apple Pay.", + "name": "copyRewardItems", + "description": "Copy Reward Items from one Project to another.", "args": [ { "name": "input", @@ -33164,7 +33653,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateApplePayBackingInput", + "name": "CopyRewardItemsInput", "ofType": null } }, @@ -33173,15 +33662,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateApplePayBackingPayload", + "name": "CopyRewardItemsPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createAsset", - "description": "Create an asset.", + "name": "createAddress", + "description": "Save a new shipping address.", "args": [ { "name": "input", @@ -33191,7 +33680,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateAssetInput", + "name": "CreateAddressInput", "ofType": null } }, @@ -33200,15 +33689,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateAssetPayload", + "name": "CreateAddressPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createAttributionEvent", - "description": "Creates an attribution event. Specifying a project will pass the project properties for attribution events. Sending this request as a logged-in user passes that user's properties as well. Any passed-in property with the same name overwrites the generated properties.", + "name": "createApplePayBacking", + "description": "[DEPRECATED in favor of CreateBackingType] Create a checkout with Apple Pay.", "args": [ { "name": "input", @@ -33218,7 +33707,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateAttributionEventInput", + "name": "CreateApplePayBackingInput", "ofType": null } }, @@ -33227,15 +33716,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateAttributionEventPayload", + "name": "CreateApplePayBackingPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createBacking", - "description": "Create a backing and checkout and process payment.", + "name": "createAsset", + "description": "Create an asset.", "args": [ { "name": "input", @@ -33245,7 +33734,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateBackingInput", + "name": "CreateAssetInput", "ofType": null } }, @@ -33254,15 +33743,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateBackingPayload", + "name": "CreateAssetPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createBusinessAddress", - "description": "Creates a business address for a user and project.", + "name": "createAttributionEvent", + "description": "Creates an attribution event. Specifying a project will pass the project properties for attribution events. Sending this request as a logged-in user passes that user's properties as well. Any passed-in property with the same name overwrites the generated properties.", "args": [ { "name": "input", @@ -33272,7 +33761,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateBusinessAddressInput", + "name": "CreateAttributionEventInput", "ofType": null } }, @@ -33281,15 +33770,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateBusinessAddressPayload", + "name": "CreateAttributionEventPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createCheckout", - "description": "Create a backing and checkout without syncing to Rosie", + "name": "createBackerSurvey", + "description": "Creates a backer survey and generates master variants for each project item if needed", "args": [ { "name": "input", @@ -33299,7 +33788,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateCheckoutInput", + "name": "CreateBackerSurveyInput", "ofType": null } }, @@ -33308,15 +33797,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateCheckoutPayload", + "name": "CreateBackerSurveyPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createComment", - "description": "Post a comment", + "name": "createBacking", + "description": "Create a backing and checkout and process payment.", "args": [ { "name": "input", @@ -33326,7 +33815,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "PostCommentInput", + "name": "CreateBackingInput", "ofType": null } }, @@ -33335,15 +33824,15 @@ ], "type": { "kind": "OBJECT", - "name": "PostCommentPayload", + "name": "CreateBackingPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createCountrySignup", - "description": "Create a country signup.", + "name": "createBusinessAddress", + "description": "Creates a business address for a user and project.", "args": [ { "name": "input", @@ -33353,7 +33842,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateCountrySignupInput", + "name": "CreateBusinessAddressInput", "ofType": null } }, @@ -33362,15 +33851,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateCountrySignupPayload", + "name": "CreateBusinessAddressPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createCreatorInterview", - "description": "Create a new creator interview", + "name": "createCheckout", + "description": "Create a backing and checkout without syncing to Rosie", "args": [ { "name": "input", @@ -33380,7 +33869,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateCreatorInterviewInput", + "name": "CreateCheckoutInput", "ofType": null } }, @@ -33389,15 +33878,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateCreatorInterviewPayload", + "name": "CreateCheckoutPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createEditorialLayout", - "description": "Create an Editorial Layout.", + "name": "createComment", + "description": "Post a comment", "args": [ { "name": "input", @@ -33407,7 +33896,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateEditorialLayoutTypeInput", + "name": "PostCommentInput", "ofType": null } }, @@ -33416,15 +33905,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateEditorialLayoutTypePayload", + "name": "PostCommentPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createFlagging", - "description": "Create a flagging (report) of a piece flaggable content.", + "name": "createCountrySignup", + "description": "Create a country signup.", "args": [ { "name": "input", @@ -33434,7 +33923,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateFlaggingInput", + "name": "CreateCountrySignupInput", "ofType": null } }, @@ -33443,15 +33932,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateFlaggingPayload", + "name": "CreateCountrySignupPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createFreeformPost", - "description": "Create a new project post/update", + "name": "createCreatorInterview", + "description": "Create a new creator interview", "args": [ { "name": "input", @@ -33461,7 +33950,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateFreeformPostInput", + "name": "CreateCreatorInterviewInput", "ofType": null } }, @@ -33470,15 +33959,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateFreeformPostPayload", + "name": "CreateCreatorInterviewPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createNexuses", - "description": "Creates a tax nexus for a project", + "name": "createEditorialLayout", + "description": "Create an Editorial Layout.", "args": [ { "name": "input", @@ -33488,7 +33977,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateNexusesInput", + "name": "CreateEditorialLayoutTypeInput", "ofType": null } }, @@ -33497,15 +33986,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateNexusesPayload", + "name": "CreateEditorialLayoutTypePayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createOption", - "description": "Creates an option type and values for an item", + "name": "createFlagging", + "description": "Create a flagging (report) of a piece flaggable content.", "args": [ { "name": "input", @@ -33515,7 +34004,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateOptionInput", + "name": "CreateFlaggingInput", "ofType": null } }, @@ -33524,15 +34013,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateOptionPayload", + "name": "CreateFlaggingPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createOrUpdateBackingAddress", - "description": null, + "name": "createFreeformPost", + "description": "Create a new project post/update", "args": [ { "name": "input", @@ -33542,7 +34031,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateBackingAddressInput", + "name": "CreateFreeformPostInput", "ofType": null } }, @@ -33551,15 +34040,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateOrUpdateBackingAddressPayload", + "name": "CreateFreeformPostPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createOrUpdateItemTaxConfig", - "description": "Sets tax related info for an item", + "name": "createOption", + "description": "Creates an option type and values for an item", "args": [ { "name": "input", @@ -33569,7 +34058,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateItemTaxConfigInput", + "name": "CreateOptionInput", "ofType": null } }, @@ -33578,15 +34067,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateOrUpdateItemTaxConfigPayload", + "name": "CreateOptionPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createOrUpdateOrderAddress", - "description": "Assign an address to an order", + "name": "createOrUpdateBackingAddress", + "description": null, "args": [ { "name": "input", @@ -33596,7 +34085,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateOrderAddressInput", + "name": "CreateOrUpdateBackingAddressInput", "ofType": null } }, @@ -33605,15 +34094,15 @@ ], "type": { "kind": "OBJECT", - "name": "CreateOrUpdateOrderAddressPayload", + "name": "CreateOrUpdateBackingAddressPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "createOrUpdateProjectFulfillmentTool", - "description": "Sets a project's chosen fulfillment platform / tool", + "name": "createOrUpdateItemTaxConfig", + "description": "Sets tax related info for an item", "args": [ { "name": "input", @@ -33623,7 +34112,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "CreateProjectFulfillmentToolInput", + "name": "CreateOrUpdateItemTaxConfigInput", "ofType": null } }, @@ -33632,7 +34121,7 @@ ], "type": { "kind": "OBJECT", - "name": "CreateProjectFulfillmentToolPayload", + "name": "CreateOrUpdateItemTaxConfigPayload", "ofType": null }, "isDeprecated": false, @@ -34260,8 +34749,8 @@ "deprecationReason": null }, { - "name": "deleteBusinessAddress", - "description": null, + "name": "deleteBackerSurvey", + "description": "Deletes a backer survey", "args": [ { "name": "input", @@ -34271,7 +34760,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "DeleteBusinessAddressInput", + "name": "DeleteBackerSurveyInput", "ofType": null } }, @@ -34280,15 +34769,15 @@ ], "type": { "kind": "OBJECT", - "name": "DeleteBusinessAddressPayload", + "name": "DeleteBackerSurveyPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "deleteComment", - "description": "Delete a comment", + "name": "deleteBusinessAddress", + "description": null, "args": [ { "name": "input", @@ -34298,7 +34787,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "DeleteCommentInput", + "name": "DeleteBusinessAddressInput", "ofType": null } }, @@ -34307,15 +34796,15 @@ ], "type": { "kind": "OBJECT", - "name": "DeleteCommentPayload", + "name": "DeleteBusinessAddressPayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "deleteNexus", - "description": "Deletes a nexus from a project.", + "name": "deleteComment", + "description": "Delete a comment", "args": [ { "name": "input", @@ -34325,7 +34814,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "DeleteNexusInput", + "name": "DeleteCommentInput", "ofType": null } }, @@ -34334,7 +34823,7 @@ ], "type": { "kind": "OBJECT", - "name": "DeleteNexusPayload", + "name": "DeleteCommentPayload", "ofType": null }, "isDeprecated": false, @@ -34880,6 +35369,33 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "lockAddresses", + "description": "Locks backer address changes for a project", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LockAddressesInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "LockAddressesPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "migrateToFulfillmentStatus", "description": "Migrate's a project's eligible backings to new fulfillment status tool.", @@ -35177,6 +35693,33 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "resetBackerSurvey", + "description": "Reset a backer survey", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ResetBackerSurveyInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "ResetBackerSurveyPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "sendMessage", "description": "Send a message", @@ -35231,6 +35774,33 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "sendSurvey", + "description": "Sends a backer survey and creates backer carts", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendSurveyInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SendSurveyPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "setAddressAsPrimary", "description": "Sets an address as the primary/default address for the user", @@ -35258,6 +35828,33 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "setAddressCollectionEnabled", + "description": "Sets address_collection_enabled", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetAddressCollectionEnabledInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "OBJECT", + "name": "SetAddressCollectionEnabledPayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "setBackingFulfillmentStatuses", "description": "Sets the fulfillment status of multiple backings at once.", @@ -35636,33 +36233,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "triggerCAPIEvent", - "description": "Triggers Meta's CAPI event for native", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TriggerCapiEventInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "TriggerCapiEventPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "triggerThirdPartyEvent", "description": "Triggers third party event", @@ -36069,8 +36639,8 @@ "deprecationReason": null }, { - "name": "updateNexuses", - "description": "Creates child nexus records, deletes child nexus records and/or updates the is_importer_of_record, has_permanent_establishment, and/or effective_at fields (if their values have changed).", + "name": "updateFulfillmentModalDismissedAt", + "description": "Update a project's fulfillment_modal_dismissed_at timestamp.", "args": [ { "name": "input", @@ -36080,7 +36650,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "UpdateNexusesInput", + "name": "UpdateFulfillmentModalDismissedAtInput", "ofType": null } }, @@ -36089,7 +36659,7 @@ ], "type": { "kind": "OBJECT", - "name": "UpdateNexusesPayload", + "name": "UpdateFulfillmentModalDismissedAtPayload", "ofType": null }, "isDeprecated": false, @@ -37011,24 +37581,16 @@ "deprecationReason": null }, { - "name": "updatedSurveyResponses", - "description": "List of SurveyResponses that were successfully updated", + "name": "updatedSurveyResponsesCount", + "description": "The count of SurveyResponses that were successfully updated", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SurveyResponse", - "ofType": null - } - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, "isDeprecated": false, @@ -37329,22 +37891,6 @@ }, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "success", - "description": "Succeeds if questions are successfully edited.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null } ], "inputFields": null, @@ -37765,6 +38311,276 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "CompleteOrderInput", + "description": "Autogenerated input type of CompleteOrder", + "fields": null, + "inputFields": [ + { + "name": "projectId", + "description": "kickstarter project id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "orderId", + "description": "kickstarter order id (not required for now, but will be when this is refactored)", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "stripeConfirmationTokenId", + "description": "the stripe confirmation token used to complete a payment (web only)", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "stripePaymentMethodId", + "description": "the stripe payment method id, starting with either `card_` or `pm_` (mobile only)", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentSourceId", + "description": "Kickstarter internal payment source id. Expects a number (not the stripe id starting with `pm_`). Pass in when using a saved card (optional)", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentSourceReusable", + "description": "If the new payment source can be reused for future payments (optional)", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "paymentMethodTypes", + "description": "List of accepted stripe payment method types", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CompleteOrderPayload", + "description": "Autogenerated return type of CompleteOrder", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientSecret", + "description": "the stripe payment intent client secret used to complete a payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "status", + "description": "the stripe payment intent status (if requires_action, it will be)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CopyRewardItemsInput", + "description": "Autogenerated input type of CopyRewardItems", + "fields": null, + "inputFields": [ + { + "name": "rewardId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "projectId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CopyRewardItemsPayload", + "description": "Autogenerated return type of CopyRewardItems", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "items", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RewardItem", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reward", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Reward", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "CreateAddressInput", @@ -38482,6 +39298,76 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "CreateBackerSurveyInput", + "description": "Autogenerated input type of CreateBackerSurvey", + "fields": null, + "inputFields": [ + { + "name": "projectId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CreateBackerSurveyPayload", + "description": "Autogenerated return type of CreateBackerSurvey", + "fields": [ + { + "name": "backerSurvey", + "description": "The backer survey if creation was successful.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "BackerSurvey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "CreateBackingInput", @@ -40111,168 +40997,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "CreateNexusesInput", - "description": "Autogenerated input type of CreateNexuses", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "country", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "isImporterOfRecord", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "hasPermanentEstablishment", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "effectiveAt", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "regionalAuthorities", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "taxId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateNexusesPayload", - "description": "Autogenerated return type of CreateNexuses", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nexuses", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Nexus", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "CreateOptionInput", @@ -40356,92 +41080,8 @@ }, { "kind": "OBJECT", - "name": "CreateOptionPayload", - "description": "Autogenerated return type of CreateOption", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "optionType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "OptionType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateBackingAddressInput", - "description": "Autogenerated input type of CreateOrUpdateBackingAddress", - "fields": null, - "inputFields": [ - { - "name": "backingId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "addressId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateOrUpdateBackingAddressPayload", - "description": "Autogenerated return type of CreateOrUpdateBackingAddress", + "name": "CreateOptionPayload", + "description": "Autogenerated return type of CreateOption", "fields": [ { "name": "clientMutationId", @@ -40456,17 +41096,13 @@ "deprecationReason": null }, { - "name": "success", + "name": "optionType", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "OBJECT", + "name": "OptionType", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -40479,81 +41115,35 @@ }, { "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateItemTaxConfigInput", - "description": "Autogenerated input type of CreateOrUpdateItemTaxConfig", + "name": "CreateOrUpdateBackingAddressInput", + "description": "Autogenerated input type of CreateOrUpdateBackingAddress", "fields": null, "inputFields": [ { - "name": "itemId", + "name": "backingId", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "ID", "ofType": null } }, "defaultValue": null }, { - "name": "itemType", - "description": null, - "type": { - "kind": "ENUM", - "name": "ItemTypeEnum", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "taxCode", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "marketValue", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shippingPreference", - "description": null, - "type": { - "kind": "ENUM", - "name": "TaxConfigShippingPreference", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "shipFromAddressId", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "localAddressId", + "name": "addressId", "description": null, "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, "defaultValue": null }, @@ -40574,8 +41164,8 @@ }, { "kind": "OBJECT", - "name": "CreateOrUpdateItemTaxConfigPayload", - "description": "Autogenerated return type of CreateOrUpdateItemTaxConfig", + "name": "CreateOrUpdateBackingAddressPayload", + "description": "Autogenerated return type of CreateOrUpdateBackingAddress", "fields": [ { "name": "clientMutationId", @@ -40590,15 +41180,15 @@ "deprecationReason": null }, { - "name": "item", + "name": "success", "description": null, "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "RewardItem", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, @@ -40613,40 +41203,12 @@ }, { "kind": "INPUT_OBJECT", - "name": "CreateOrUpdateOrderAddressInput", - "description": "Autogenerated input type of CreateOrUpdateOrderAddress", + "name": "CreateOrUpdateItemTaxConfigInput", + "description": "Autogenerated input type of CreateOrUpdateItemTaxConfig", "fields": null, "inputFields": [ { - "name": "orderId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "contactName", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "addressLine1", + "name": "itemId", "description": null, "type": { "kind": "NON_NULL", @@ -40660,31 +41222,17 @@ "defaultValue": null }, { - "name": "addressLine2", + "name": "itemType", "description": null, "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "ItemTypeEnum", "ofType": null }, "defaultValue": null }, { - "name": "city", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "region", + "name": "taxCode", "description": null, "type": { "kind": "SCALAR", @@ -40694,35 +41242,7 @@ "defaultValue": null }, { - "name": "country", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "postalCode", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "phoneNumber", + "name": "marketValue", "description": null, "type": { "kind": "SCALAR", @@ -40732,107 +41252,27 @@ "defaultValue": null }, { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", + "name": "shippingPreference", + "description": null, "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "TaxConfigShippingPreference", "ofType": null }, "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateOrUpdateOrderAddressPayload", - "description": "Autogenerated return type of CreateOrUpdateOrderAddress", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null }, { - "name": "clientSecret", + "name": "shipFromAddressId", "description": null, - "args": [], "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "orderAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrderAddress", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateProjectFulfillmentToolInput", - "description": "Autogenerated input type of CreateProjectFulfillmentTool", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "platformType", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "FulfillmentPlatformEnum", - "ofType": null - } - }, "defaultValue": null }, { - "name": "platform", + "name": "localAddressId", "description": null, "type": { "kind": "SCALAR", @@ -40858,8 +41298,8 @@ }, { "kind": "OBJECT", - "name": "CreateProjectFulfillmentToolPayload", - "description": "Autogenerated return type of CreateProjectFulfillmentTool", + "name": "CreateOrUpdateItemTaxConfigPayload", + "description": "Autogenerated return type of CreateOrUpdateItemTaxConfig", "fields": [ { "name": "clientMutationId", @@ -40874,7 +41314,7 @@ "deprecationReason": null }, { - "name": "fulfillmentTool", + "name": "item", "description": null, "args": [], "type": { @@ -40882,7 +41322,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "ProjectFulfillmentTool", + "name": "RewardItem", "ofType": null } }, @@ -42596,6 +43036,26 @@ } }, "defaultValue": null + }, + { + "name": "estimatedMin", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "estimatedMax", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null } ], "interfaces": null, @@ -43708,25 +44168,147 @@ }, { "kind": "OBJECT", - "name": "DeleteAssetPayload", - "description": "Autogenerated return type of DeleteAsset", + "name": "DeleteAssetPayload", + "description": "Autogenerated return type of DeleteAsset", + "fields": [ + { + "name": "attachable", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "UNION", + "name": "Attachable", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "UNION", + "name": "Attachable", + "description": "An object that can be associated with uploaded assets", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Project", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "FreeformPost", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "InterviewAnswer", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Survey", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Survey", + "description": "A survey", + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeleteBackerSurveyInput", + "description": "Autogenerated input type of DeleteBackerSurvey", + "fields": null, + "inputFields": [ + { + "name": "projectId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeleteBackerSurveyPayload", + "description": "Autogenerated return type of DeleteBackerSurvey", "fields": [ - { - "name": "attachable", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "Attachable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", @@ -43738,59 +44320,17 @@ }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "Attachable", - "description": "An object that can be associated with uploaded assets", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "Project", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "FreeformPost", - "ofType": null }, { - "kind": "OBJECT", - "name": "InterviewAnswer", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "Survey", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "Survey", - "description": "A survey", - "fields": [ - { - "name": "id", - "description": null, + "name": "success", + "description": "Succeeds if backer survey is deleted.", "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "Boolean", "ofType": null } }, @@ -43799,13 +44339,7 @@ } ], "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], + "interfaces": [], "enumValues": null, "possibleTypes": null }, @@ -43963,76 +44497,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteNexusInput", - "description": "Autogenerated input type of DeleteNexus", - "fields": null, - "inputFields": [ - { - "name": "nexusId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteNexusPayload", - "description": "Autogenerated return type of DeleteNexus", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "success", - "description": "Succeeds if nexus is deleted.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "DeleteOptionInput", @@ -45601,6 +46065,76 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "LockAddressesInput", + "description": "Autogenerated input type of LockAddresses", + "fields": null, + "inputFields": [ + { + "name": "projectId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LockAddressesPayload", + "description": "Autogenerated return type of LockAddresses", + "fields": [ + { + "name": "addressLockoutDate", + "description": "Returns the address lockout date if successful.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "MigrateToFulfillmentStatusInput", @@ -46026,8 +46560,78 @@ }, { "kind": "OBJECT", - "name": "PublishEditorialLayoutTypePayload", - "description": "Autogenerated return type of PublishEditorialLayoutType", + "name": "PublishEditorialLayoutTypePayload", + "description": "Autogenerated return type of PublishEditorialLayoutType", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "layout", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Layout", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PublishPostInput", + "description": "Autogenerated input type of PublishPost", + "fields": null, + "inputFields": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PublishPostPayload", + "description": "Autogenerated return type of PublishPost", "fields": [ { "name": "clientMutationId", @@ -46042,12 +46646,12 @@ "deprecationReason": null }, { - "name": "layout", + "name": "post", "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Layout", + "kind": "INTERFACE", + "name": "Postable", "ofType": null }, "isDeprecated": false, @@ -46061,8 +46665,8 @@ }, { "kind": "INPUT_OBJECT", - "name": "PublishPostInput", - "description": "Autogenerated input type of PublishPost", + "name": "RefreshSpreadsheetDataInput", + "description": "Autogenerated input type of RefreshSpreadsheetData", "fields": null, "inputFields": [ { @@ -46096,8 +46700,8 @@ }, { "kind": "OBJECT", - "name": "PublishPostPayload", - "description": "Autogenerated return type of PublishPost", + "name": "RefreshSpreadsheetDataPayload", + "description": "Autogenerated return type of RefreshSpreadsheetData", "fields": [ { "name": "clientMutationId", @@ -46112,12 +46716,12 @@ "deprecationReason": null }, { - "name": "post", + "name": "spreadsheet", "description": null, "args": [], "type": { - "kind": "INTERFACE", - "name": "Postable", + "kind": "OBJECT", + "name": "Spreadsheet", "ofType": null }, "isDeprecated": false, @@ -46131,8 +46735,8 @@ }, { "kind": "INPUT_OBJECT", - "name": "RefreshSpreadsheetDataInput", - "description": "Autogenerated input type of RefreshSpreadsheetData", + "name": "RemoveSheetFromProjectInput", + "description": "Autogenerated input type of RemoveSheetFromProject", "fields": null, "inputFields": [ { @@ -46166,8 +46770,8 @@ }, { "kind": "OBJECT", - "name": "RefreshSpreadsheetDataPayload", - "description": "Autogenerated return type of RefreshSpreadsheetData", + "name": "RemoveSheetFromProjectPayload", + "description": "Autogenerated return type of RemoveSheetFromProject", "fields": [ { "name": "clientMutationId", @@ -46182,12 +46786,12 @@ "deprecationReason": null }, { - "name": "spreadsheet", + "name": "sheetsUrl", "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Spreadsheet", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, @@ -46201,12 +46805,12 @@ }, { "kind": "INPUT_OBJECT", - "name": "RemoveSheetFromProjectInput", - "description": "Autogenerated input type of RemoveSheetFromProject", + "name": "ReportSpamInput", + "description": "Autogenerated input type of ReportSpam", "fields": null, "inputFields": [ { - "name": "id", + "name": "messageId", "description": null, "type": { "kind": "NON_NULL", @@ -46236,8 +46840,8 @@ }, { "kind": "OBJECT", - "name": "RemoveSheetFromProjectPayload", - "description": "Autogenerated return type of RemoveSheetFromProject", + "name": "ReportSpamPayload", + "description": "Autogenerated return type of ReportSpam", "fields": [ { "name": "clientMutationId", @@ -46252,13 +46856,17 @@ "deprecationReason": null }, { - "name": "sheetsUrl", + "name": "spam", "description": null, "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -46271,21 +46879,17 @@ }, { "kind": "INPUT_OBJECT", - "name": "ReportSpamInput", - "description": "Autogenerated input type of ReportSpam", + "name": "RequestPasswordResetInput", + "description": "Autogenerated input type of RequestPasswordReset", "fields": null, "inputFields": [ { - "name": "messageId", + "name": "email", "description": null, "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } + "kind": "SCALAR", + "name": "Email", + "ofType": null }, "defaultValue": null }, @@ -46306,8 +46910,8 @@ }, { "kind": "OBJECT", - "name": "ReportSpamPayload", - "description": "Autogenerated return type of ReportSpam", + "name": "RequestPasswordResetPayload", + "description": "Autogenerated return type of RequestPasswordReset", "fields": [ { "name": "clientMutationId", @@ -46322,17 +46926,13 @@ "deprecationReason": null }, { - "name": "spam", + "name": "email", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "SCALAR", + "name": "Email", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -46345,17 +46945,21 @@ }, { "kind": "INPUT_OBJECT", - "name": "RequestPasswordResetInput", - "description": "Autogenerated input type of RequestPasswordReset", + "name": "ResetBackerSurveyInput", + "description": "Autogenerated input type of ResetBackerSurvey", "fields": null, "inputFields": [ { - "name": "email", + "name": "projectId", "description": null, "type": { - "kind": "SCALAR", - "name": "Email", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, "defaultValue": null }, @@ -46376,8 +46980,8 @@ }, { "kind": "OBJECT", - "name": "RequestPasswordResetPayload", - "description": "Autogenerated return type of RequestPasswordReset", + "name": "ResetBackerSurveyPayload", + "description": "Autogenerated return type of ResetBackerSurvey", "fields": [ { "name": "clientMutationId", @@ -46392,13 +46996,17 @@ "deprecationReason": null }, { - "name": "email", - "description": null, + "name": "success", + "description": "Succeeds if backer survey responses are reset.", "args": [], "type": { - "kind": "SCALAR", - "name": "Email", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -46584,8 +47192,152 @@ }, { "kind": "OBJECT", - "name": "SendSubmissionMessagePayload", - "description": "Autogenerated return type of SendSubmissionMessage", + "name": "SendSubmissionMessagePayload", + "description": "Autogenerated return type of SendSubmissionMessage", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Message", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendSurveyInput", + "description": "Autogenerated input type of SendSurvey", + "fields": null, + "inputFields": [ + { + "name": "surveyId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendSurveyPayload", + "description": "Autogenerated return type of SendSurvey", + "fields": [ + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "survey", + "description": "The updated survey.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BackerSurvey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetAddressAsPrimaryInput", + "description": "Autogenerated input type of SetAddressAsPrimary", + "fields": null, + "inputFields": [ + { + "name": "fulfillmentAddressId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetAddressAsPrimaryPayload", + "description": "Autogenerated return type of SetAddressAsPrimary", "fields": [ { "name": "clientMutationId", @@ -46600,13 +47352,17 @@ "deprecationReason": null }, { - "name": "message", - "description": null, + "name": "success", + "description": "Success if address was updated successfully", "args": [], "type": { - "kind": "OBJECT", - "name": "Message", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null @@ -46619,12 +47375,12 @@ }, { "kind": "INPUT_OBJECT", - "name": "SetAddressAsPrimaryInput", - "description": "Autogenerated input type of SetAddressAsPrimary", + "name": "SetAddressCollectionEnabledInput", + "description": "Autogenerated input type of SetAddressCollectionEnabled", "fields": null, "inputFields": [ { - "name": "fulfillmentAddressId", + "name": "projectId", "description": null, "type": { "kind": "NON_NULL", @@ -46637,6 +47393,20 @@ }, "defaultValue": null }, + { + "name": "addressCollectionEnabled", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", @@ -46654,24 +47424,12 @@ }, { "kind": "OBJECT", - "name": "SetAddressAsPrimaryPayload", - "description": "Autogenerated return type of SetAddressAsPrimary", + "name": "SetAddressCollectionEnabledPayload", + "description": "Autogenerated return type of SetAddressCollectionEnabled", "fields": [ { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "success", - "description": "Success if address was updated successfully", + "name": "addressCollectionEnabled", + "description": "Whether or not the creator has enabled address collection for this project.", "args": [], "type": { "kind": "NON_NULL", @@ -46684,6 +47442,18 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -47542,27 +48312,53 @@ { "name": "addressId", "description": null, + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "lineItemUpdates", + "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LineItemInput", + "ofType": null + } + } } }, "defaultValue": null }, { - "name": "lineItemUpdates", + "name": "backerQuestionAnswers", "description": null, "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "INPUT_OBJECT", - "name": "LineItemInput", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnswerInput", + "ofType": null + } + } } }, "defaultValue": null @@ -47956,166 +48752,8 @@ }, { "kind": "OBJECT", - "name": "ToggleProjectMilestonePayload", - "description": "Autogenerated return type of ToggleProjectMilestone", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestone", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectMilestone", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ToggleProjectPreviewInput", - "description": "Autogenerated input type of ToggleProjectPreview", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ToggleProjectPreviewPayload", - "description": "Autogenerated return type of ToggleProjectPreview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TranslateEditorialLayoutTypeInput", - "description": "Autogenerated input type of TranslateEditorialLayoutType", - "fields": null, - "inputFields": [ - { - "name": "slug", - "description": "Slug for the Editorial Layout", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "revision", - "description": "Revision for the Editorial Layout", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TranslateEditorialLayoutTypePayload", - "description": "Autogenerated return type of TranslateEditorialLayoutType", + "name": "ToggleProjectMilestonePayload", + "description": "Autogenerated return type of ToggleProjectMilestone", "fields": [ { "name": "clientMutationId", @@ -48130,12 +48768,12 @@ "deprecationReason": null }, { - "name": "layout", + "name": "milestone", "description": null, "args": [], "type": { "kind": "OBJECT", - "name": "Layout", + "name": "ProjectMilestone", "ofType": null }, "isDeprecated": false, @@ -48149,12 +48787,12 @@ }, { "kind": "INPUT_OBJECT", - "name": "TriggerCapiEventInput", - "description": "Autogenerated input type of TriggerCapiEvent", + "name": "ToggleProjectPreviewInput", + "description": "Autogenerated input type of ToggleProjectPreview", "fields": null, "inputFields": [ { - "name": "projectId", + "name": "id", "description": null, "type": { "kind": "NON_NULL", @@ -48168,178 +48806,96 @@ "defaultValue": null }, { - "name": "eventName", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "externalId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "userEmail", - "description": null, + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", "type": { "kind": "SCALAR", "name": "String", "ofType": null }, "defaultValue": null - }, - { - "name": "appData", - "description": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "AppDataInput", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "customData", - "description": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "CustomDataInput", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "waitForConsent", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ToggleProjectPreviewPayload", + "description": "Autogenerated return type of ToggleProjectPreview", + "fields": [ { - "name": "testEventCode", - "description": null, + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", + "args": [], "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": "null" + "isDeprecated": false, + "deprecationReason": null }, { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", + "name": "project", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Project", + "ofType": null + } }, - "defaultValue": null + "isDeprecated": false, + "deprecationReason": null } ], - "interfaces": null, + "inputFields": null, + "interfaces": [], "enumValues": null, "possibleTypes": null }, { "kind": "INPUT_OBJECT", - "name": "AppDataInput", - "description": "Parameters for sharing app data and device information with the Conversions API", + "name": "TranslateEditorialLayoutTypeInput", + "description": "Autogenerated input type of TranslateEditorialLayoutType", "fields": null, "inputFields": [ { - "name": "advertiserTrackingEnabled", - "description": "Use this field to specify ATT permission on an iOS 14.5+ device.", + "name": "slug", + "description": "Slug for the Editorial Layout", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", "ofType": null } }, "defaultValue": null }, { - "name": "applicationTrackingEnabled", - "description": "A person can choose to enable ad tracking on an app level. Your SDK should allow an app developer to put an opt-out setting into their app. Use this field to specify the person's choice.", + "name": "revision", + "description": "Revision for the Editorial Layout", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", "ofType": null } }, "defaultValue": null }, { - "name": "extinfo", - "description": "Extended device information, such as screen width and height. Required only for native.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CustomDataInput", - "description": "A map that includes additional business data about the CAPI event.", - "fields": null, - "inputFields": [ - { - "name": "currency", - "description": "The currency for the value specified, if applicable. Currency must be a valid ISO 4217 three-digit currency code.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "value", - "description": "A numeric value associated with this event. This could be a monetary value or a value in some other metric.", + "name": "clientMutationId", + "description": "A unique identifier for the client performing the mutation.", "type": { "kind": "SCALAR", "name": "String", @@ -48354,8 +48910,8 @@ }, { "kind": "OBJECT", - "name": "TriggerCapiEventPayload", - "description": "Autogenerated return type of TriggerCapiEvent", + "name": "TranslateEditorialLayoutTypePayload", + "description": "Autogenerated return type of TranslateEditorialLayoutType", "fields": [ { "name": "clientMutationId", @@ -48370,17 +48926,13 @@ "deprecationReason": null }, { - "name": "success", + "name": "layout", "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "OBJECT", + "name": "Layout", + "ofType": null }, "isDeprecated": false, "deprecationReason": null @@ -48591,6 +49143,67 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "AppDataInput", + "description": "Parameters for sharing app data and device information with the Conversions API", + "fields": null, + "inputFields": [ + { + "name": "advertiserTrackingEnabled", + "description": "Use this field to specify ATT permission on an iOS 14.5+ device.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "applicationTrackingEnabled", + "description": "A person can choose to enable ad tracking on an app level. Your SDK should allow an app developer to put an opt-out setting into their app. Use this field to specify the person's choice.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "extinfo", + "description": "Extended device information, such as screen width and height. Required only for native.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "TriggerThirdPartyEventPayload", @@ -50029,12 +50642,12 @@ }, { "kind": "INPUT_OBJECT", - "name": "UpdateNexusesInput", - "description": "Autogenerated input type of UpdateNexuses", + "name": "UpdateFulfillmentModalDismissedAtInput", + "description": "Autogenerated input type of UpdateFulfillmentModalDismissedAt", "fields": null, "inputFields": [ { - "name": "nexusId", + "name": "projectId", "description": null, "type": { "kind": "NON_NULL", @@ -50047,66 +50660,6 @@ }, "defaultValue": null }, - { - "name": "isImporterOfRecord", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "hasPermanentEstablishment", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "regionalAuthorities", - "description": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": "[]" - }, - { - "name": "effectiveAt", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - }, { "name": "clientMutationId", "description": "A unique identifier for the client performing the mutation.", @@ -50124,8 +50677,8 @@ }, { "kind": "OBJECT", - "name": "UpdateNexusesPayload", - "description": "Autogenerated return type of UpdateNexuses", + "name": "UpdateFulfillmentModalDismissedAtPayload", + "description": "Autogenerated return type of UpdateFulfillmentModalDismissedAt", "fields": [ { "name": "clientMutationId", @@ -50140,12 +50693,12 @@ "deprecationReason": null }, { - "name": "parentNexus", + "name": "project", "description": null, "args": [], "type": { "kind": "OBJECT", - "name": "Nexus", + "name": "Project", "ofType": null }, "isDeprecated": false, diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/Category.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/Category.kt new file mode 100644 index 0000000000..00ceebc1f1 --- /dev/null +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/Category.kt @@ -0,0 +1,55 @@ +package com.kickstarter.features.pledgedprojectsoverview.data + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +class Category private constructor( + val count: Int?, + val slug: String?, + val title: String? +) : Parcelable { + + fun count() = this.count + + fun slug() = this.slug + + fun title() = this.title + + @Parcelize + data class Builder( + private var count: Int? = null, + private var slug: String? = null, + private var title: String? = null, + ) : Parcelable { + fun count(count: Int?) = apply { this.count = count } + fun slug(slug: String?) = apply { this.slug = slug } + fun title(title: String?) = apply { this.title = title } + fun build() = Category( + count = count, + slug = slug, + title = title + ) + } + + fun toBuilder() = Builder( + count = count, + slug = slug, + title = title + ) + + companion object { + @JvmStatic + fun builder() = Builder() + } + + override fun equals(other: Any?): Boolean { + var equals = super.equals(other) + if (other is Category) { + equals = count() == other.count() && + slug() == other.slug() && + title() == other.title() + } + return equals + } +} diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCard.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCard.kt new file mode 100644 index 0000000000..6d26325799 --- /dev/null +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCard.kt @@ -0,0 +1,142 @@ +package com.kickstarter.features.pledgedprojectsoverview.data + +import android.os.Parcelable +import com.kickstarter.features.pledgedprojectsoverview.ui.PPOCardViewType +import kotlinx.parcelize.Parcelize +import type.CurrencyCode + +@Parcelize +class PPOCard private constructor( + val backingId: String?, + val address: String?, + val amount: String?, + val currencyCode: CurrencyCode?, + val currencySymbol: String?, + val projectName: String?, + val projectId: String?, + val projectSlug: String?, + val imageUrl: String?, + val imageContentDescription: String?, + val creatorName: String?, + val backingDetailsUrl: String?, + val showBadge: Boolean, + val timeNumberForAction: Int, + val viewType: PPOCardViewType? + +) : Parcelable { + + fun backingId() = this.backingId + fun address() = this.address + fun amount() = this.amount + fun currencyCode() = this.currencyCode + fun currencySymbol() = this.currencySymbol + fun projectName() = this.projectName + fun projectId() = this.projectId + fun projectSlug() = this.projectSlug + fun imageUrl() = this.imageUrl + fun imageContentDescription() = this.imageContentDescription + fun creatorName() = this.creatorName + fun backingDetailsUrl() = this.backingDetailsUrl + fun showBadge() = this.showBadge + fun timeNumberForAction() = this.timeNumberForAction + fun viewType() = this.viewType + + @Parcelize + data class Builder( + var backingId: String? = null, + var address: String? = null, + var amount: String? = null, + var currencyCode: CurrencyCode? = null, + var currencySymbol: String? = null, + var projectName: String? = null, + var projectId: String? = null, + var projectSlug: String? = null, + var imageUrl: String? = null, + var imageContentDescription: String? = null, + var creatorName: String? = null, + var backingDetailsUrl: String? = null, + var showBadge: Boolean = false, + var timeNumberForAction: Int = 0, + var viewType: PPOCardViewType? = null, + ) : Parcelable { + + fun backingId(backingId: String?) = apply { this.backingId = backingId } + fun address(address: String?) = apply { this.address = address } + fun amount(amount: String?) = apply { this.amount = amount } + fun currencyCode(currencyCode: CurrencyCode?) = apply { this.currencyCode = currencyCode } + fun currencySymbol(currencySymbol: String?) = apply { this.currencySymbol = currencySymbol } + fun projectName(projectName: String?) = apply { this.projectName = projectName } + fun projectId(projectId: String?) = apply { this.projectId = projectId } + fun projectSlug(projectSlug: String?) = apply { this.projectSlug = projectSlug } + fun imageUrl(imageUrl: String?) = apply { this.imageUrl = imageUrl } + fun imageContentDescription(imageContentDescription: String?) = apply { this.imageContentDescription = imageContentDescription } + fun creatorName(creatorName: String?) = apply { this.creatorName = creatorName } + fun backingDetailsUrl(backingDetailsUrl: String?) = apply { this.backingDetailsUrl = backingDetailsUrl } + fun timeNumberForAction(timeNumberForAction: Int) = apply { this.timeNumberForAction = timeNumberForAction } + fun showBadge(showBadge: Boolean) = apply { this.showBadge = showBadge } + fun viewType(viewType: PPOCardViewType?) = apply { this.viewType = viewType } + + fun build() = PPOCard( + backingId = backingId, + address = address, + amount = amount, + currencyCode = currencyCode, + currencySymbol = currencySymbol, + projectName = projectName, + projectId = projectId, + projectSlug = projectSlug, + imageUrl = imageUrl, + imageContentDescription = imageUrl, + creatorName = creatorName, + backingDetailsUrl = backingDetailsUrl, + showBadge = showBadge, + timeNumberForAction = timeNumberForAction, + viewType = viewType, + ) + } + + fun toBuilder() = Builder( + backingId = backingId, + address = address, + amount = amount, + currencyCode = currencyCode, + currencySymbol = currencySymbol, + projectName = projectName, + projectId = projectId, + projectSlug = projectSlug, + imageUrl = imageUrl, + imageContentDescription = imageContentDescription, + creatorName = creatorName, + backingDetailsUrl = backingDetailsUrl, + showBadge = showBadge, + timeNumberForAction = timeNumberForAction, + viewType = viewType, + ) + + companion object { + @JvmStatic + fun builder() = Builder() + } + + override fun equals(other: Any?): Boolean { + var equals = super.equals(other) + if (other is PPOCard) { + equals = backingId() == other.backingId() && + address() == other.address() && + amount() == other.amount() && + currencyCode() == other.currencyCode() && + currencySymbol() == other.currencySymbol() && + projectName() == other.projectName() && + projectId() == other.projectId() && + projectSlug() == other.projectSlug() && + creatorName() == other.creatorName() && + imageUrl() == other.imageUrl() && + imageContentDescription() == other.imageContentDescription() && + backingDetailsUrl() == other.backingDetailsUrl() && + showBadge() == other.showBadge() && + timeNumberForAction() == other.timeNumberForAction() && + viewType() == other.viewType() + } + return equals + } +} diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCardFactory.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCardFactory.kt new file mode 100644 index 0000000000..3911b68767 --- /dev/null +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PPOCardFactory.kt @@ -0,0 +1,62 @@ +package com.kickstarter.features.pledgedprojectsoverview.data + +import com.kickstarter.features.pledgedprojectsoverview.ui.PPOCardViewType +import type.CurrencyCode + +class PPOCardFactory private constructor() { + companion object { + + fun ppoCard( + backingID: String?, + address: String?, + amount: String?, + currencyCode: CurrencyCode?, + currencySymbol: String?, + projectName: String?, + projectId: String?, + projectSlug: String?, + imageUrl: String?, + creatorName: String?, + backingDetailsUrl: String?, + timeNumberForAction: Int, + showBadge: Boolean, + viewType: PPOCardViewType? + ): PPOCard { + return PPOCard.builder() + .backingId(backingID) + .address(address) + .amount(amount) + .currencySymbol(currencySymbol) + .currencyCode(currencyCode) + .projectName(projectName) + .projectId(projectId) + .projectSlug(projectSlug) + .imageUrl(imageUrl) + .creatorName(creatorName) + .backingDetailsUrl(backingDetailsUrl) + .viewType(viewType) + .timeNumberForAction(timeNumberForAction) + .showBadge(showBadge) + .build() + } + + fun confirmAddressCard(): PPOCard { + return ppoCard( + backingID = "1234", + amount = "12.0", + address = "Firsty Lasty\n123 First Street, Apt #5678\nLos Angeles, CA 90025-1234\nUnited States", + currencySymbol = "$", + currencyCode = CurrencyCode.USD, + projectName = "Super Duper Project", + projectId = "123456", + projectSlug = "hello/hello", + imageUrl = "image/url", + creatorName = "creatorName", + backingDetailsUrl = "backing/details/url", + timeNumberForAction = 10, + showBadge = false, + viewType = PPOCardViewType.CONFIRM_ADDRESS + ) + } + } +} diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewEnvelope.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewEnvelope.kt new file mode 100644 index 0000000000..9af491a633 --- /dev/null +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewEnvelope.kt @@ -0,0 +1,62 @@ +package com.kickstarter.features.pledgedprojectsoverview.data + +import android.os.Parcelable +import com.kickstarter.services.apiresponses.commentresponse.PageInfoEnvelope +import kotlinx.parcelize.Parcelize + +@Parcelize +class PledgedProjectsOverviewEnvelope private constructor( + val ppoCards: List?, + val pageInfoEnvelope: PageInfoEnvelope, + val totalCount: Int?, + val categories: List? +) : Parcelable { + + fun pledges() = this.ppoCards + fun pageInfoEnvelope() = this.pageInfoEnvelope + fun totalCount() = this.totalCount + fun categories() = this.categories + @Parcelize + data class Builder( + var ppoCards: List? = null, + var pageInfoEnvelope: PageInfoEnvelope = PageInfoEnvelope.builder().build(), + var totalCount: Int? = null, + var categories: List? = null, + ) : Parcelable { + + fun pledges(ppoCards: List?) = apply { this.ppoCards = ppoCards } + fun pageInfoEnvelope(pageInfoEnvelope: PageInfoEnvelope) = apply { this.pageInfoEnvelope = pageInfoEnvelope } + fun totalCount(totalCount: Int?) = apply { this.totalCount = totalCount } + + fun categories(categories: List?) = apply { this.categories = categories } + + fun build() = PledgedProjectsOverviewEnvelope( + ppoCards = ppoCards, + pageInfoEnvelope = pageInfoEnvelope, + totalCount = totalCount, + categories = categories + ) + } + + companion object { + fun builder() = Builder() + } + + fun toBuilder() = Builder( + ppoCards = ppoCards, + pageInfoEnvelope = pageInfoEnvelope, + totalCount = totalCount, + categories = categories + ) + + override fun equals(other: Any?): Boolean { + var equals = super.equals(other) + if (other is PledgedProjectsOverviewEnvelope) { + equals = pledges() == other.pledges() && + categories() == other.categories() && + pageInfoEnvelope() == other.pageInfoEnvelope() && + totalCount() == other.totalCount() + } + return equals + } +} diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewQueryData.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewQueryData.kt new file mode 100644 index 0000000000..0da0112a36 --- /dev/null +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/data/PledgedProjectsOverviewQueryData.kt @@ -0,0 +1,8 @@ +package com.kickstarter.features.pledgedprojectsoverview.data + +data class PledgedProjectsOverviewQueryData( + val first: Int?, + val after: String?, + val last: Int?, + val before: String? +) diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PPOCardView.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PPOCardView.kt index af855b2b3a..a991f8e784 100644 --- a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PPOCardView.kt +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PPOCardView.kt @@ -193,7 +193,8 @@ enum class PPOCardViewType { AUTHENTICATE_CARD, CARD_AUTHENTICATED, TAKE_SURVEY, - SURVEY_SUBMITTED + SURVEY_SUBMITTED, + UNKNOWN, } enum class PPOCardViewTestTag { @@ -242,6 +243,7 @@ fun PPOCardView( PPOCardViewType.CARD_AUTHENTICATED -> {} PPOCardViewType.TAKE_SURVEY -> TakeSurveyAlertsView(timeNumberForAction) PPOCardViewType.SURVEY_SUBMITTED -> SurveySubmittedAlertsView(timeNumberForAction) + PPOCardViewType.UNKNOWN -> { } } ProjectPledgeSummaryView( @@ -277,6 +279,7 @@ fun PPOCardView( PPOCardViewType.CARD_AUTHENTICATED -> CardAuthenticatedButtonView() PPOCardViewType.TAKE_SURVEY -> TakeSurveyButtonView(onActionButtonClicked) PPOCardViewType.SURVEY_SUBMITTED -> SurveySubmittedButtonView() + PPOCardViewType.UNKNOWN -> {} } } } diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreen.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreen.kt index 0b70c26c8d..0eacff7b3d 100644 --- a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreen.kt +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreen.kt @@ -29,6 +29,8 @@ import androidx.paging.PagingData import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems import com.kickstarter.R +import com.kickstarter.features.pledgedprojectsoverview.data.PPOCard +import com.kickstarter.features.pledgedprojectsoverview.data.PPOCardFactory import com.kickstarter.ui.compose.designsystem.KSAlertDialog import com.kickstarter.ui.compose.designsystem.KSTheme import com.kickstarter.ui.compose.designsystem.KSTheme.colors @@ -46,13 +48,13 @@ private fun PledgedProjectsOverviewScreenPreview() { backgroundColor = colors.backgroundSurfacePrimary ) { padding -> val ppoCardList1 = (0..10).map { - PPOCardDataMock() + PPOCardFactory.confirmAddressCard() } - val ppoCardList = flowOf(PagingData.from(ppoCardList1)).collectAsLazyPagingItems() + val ppoCardPagingList = flowOf(PagingData.from(ppoCardList1)).collectAsLazyPagingItems() PledgedProjectsOverviewScreen( modifier = Modifier.padding(padding), lazyColumnListState = rememberLazyListState(), - ppoCards = ppoCardList, + ppoCards = ppoCardPagingList, totalAlerts = 10, onBackPressed = {}, onAddressConfirmed = {}, @@ -72,7 +74,7 @@ fun PledgedProjectsOverviewScreen( onAddressConfirmed: () -> Unit, lazyColumnListState: LazyListState, errorSnackBarHostState: SnackbarHostState, - ppoCards: LazyPagingItems, + ppoCards: LazyPagingItems, totalAlerts: Int = 0, onCardClick: () -> Unit, onProjectPledgeSummaryClick: (backingDetailsUrl: String) -> Unit, @@ -131,23 +133,28 @@ fun PledgedProjectsOverviewScreen( ppoCards[index]?.let { PPOCardView( - viewType = it.viewType, + viewType = it.viewType() ?: PPOCardViewType.UNKNOWN, onCardClick = { }, - onProjectPledgeSummaryClick = { onProjectPledgeSummaryClick(it.backingDetailsUrl) }, - projectName = it.projectName, - pledgeAmount = it.pledgeAmount, - imageUrl = it.imageUrl, - imageContentDescription = it.imageContentDescription, - creatorName = it.creatorName, - sendAMessageClickAction = { onSendMessageClick(it.projectSlug) }, - shippingAddress = it.shippingAddress, - showBadge = it.showBadge, + onProjectPledgeSummaryClick = { onProjectPledgeSummaryClick(it.backingDetailsUrl() ?: "") }, + projectName = it.projectName(), + pledgeAmount = it.amount(), + imageUrl = it.imageUrl(), + imageContentDescription = it.imageContentDescription(), + creatorName = it.creatorName(), + sendAMessageClickAction = { onSendMessageClick(it.projectSlug() ?: "") }, + shippingAddress = it.address() ?: "", // TODO replace with formatted address from PPO response + showBadge = it.showBadge(), onActionButtonClicked = { }, onSecondaryActionButtonClicked = { - confirmedAddress = it.shippingAddress - openConfirmAddressAlertDialog.value = true + when (it.viewType()) { + PPOCardViewType.CONFIRM_ADDRESS -> { + confirmedAddress = it.address() ?: "" + openConfirmAddressAlertDialog.value = true + } + else -> {} + } }, - timeNumberForAction = it.timeNumberForAction + timeNumberForAction = it.timeNumberForAction() ) } } @@ -163,11 +170,11 @@ fun PledgedProjectsOverviewScreen( openConfirmAddressAlertDialog.value -> { KSAlertDialog( setShowDialog = { openConfirmAddressAlertDialog.value = it }, - headlineText = "Confirm your address:", + headlineText = "Confirm your address", bodyText = confirmedAddress, - leftButtonText = "Cancel", + leftButtonText = stringResource(id = R.string.Cancel), leftButtonAction = { openConfirmAddressAlertDialog.value = false }, - rightButtonText = "Confirm", + rightButtonText = stringResource(id = R.string.Confirm), rightButtonAction = { openConfirmAddressAlertDialog.value = false @@ -185,22 +192,3 @@ fun PledgedProjectsOverviewScreen( enum class PledgedProjectsOverviewScreenTestTag { BACK_BUTTON, } - -// For preview purposes only, will remove once we have the PPO Card payload model from graph -data class PPOCardDataMock( - val viewType: PPOCardViewType = PPOCardViewType.FIX_PAYMENT, - val onCardClick: () -> Unit = { }, - val projectName: String = "This is a project name", - val projectSlug: String = "", - val pledgeAmount: String = "$14.00", - val imageUrl: String = "", - val imageContentDescription: String = "", - val creatorName: String = "Creator Name", - val sendAMessageClickAction: () -> Unit = { }, - val shippingAddress: String = "", - val showBadge: Boolean = true, - val onActionButtonClicked: () -> Unit = {}, - val onSecondaryActionButtonClicked: () -> Unit = {}, - val timeNumberForAction: Int = 25, - val backingDetailsUrl: String = "https://www.kickstarter.com/projects/thehoneycouple/the-honey-couples-building-expansion" -) diff --git a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/viewmodel/PledgedProjectsOverviewViewModel.kt b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/viewmodel/PledgedProjectsOverviewViewModel.kt index 8ea447c635..66510c2d40 100644 --- a/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/viewmodel/PledgedProjectsOverviewViewModel.kt +++ b/app/src/main/java/com/kickstarter/features/pledgedprojectsoverview/viewmodel/PledgedProjectsOverviewViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import androidx.paging.PagingData import com.kickstarter.R -import com.kickstarter.features.pledgedprojectsoverview.ui.PPOCardDataMock +import com.kickstarter.features.pledgedprojectsoverview.data.PPOCard import com.kickstarter.libs.Environment import com.kickstarter.models.Project import kotlinx.coroutines.flow.MutableSharedFlow @@ -25,13 +25,13 @@ import kotlinx.coroutines.rx2.asFlow class PledgedProjectsOverviewViewModel(environment: Environment) : ViewModel() { - private val ppoCards = MutableStateFlow>(PagingData.empty()) + private val ppoCards = MutableStateFlow>(PagingData.empty()) private val totalAlerts = MutableStateFlow(0) private var mutableProjectFlow = MutableSharedFlow() private var snackbarMessage: (stringID: Int) -> Unit = {} private val apolloClient = requireNotNull(environment.apolloClientV2()) - val ppoCardsState: StateFlow> = ppoCards.asStateFlow() + val ppoCardsState: StateFlow> = ppoCards.asStateFlow() val totalAlertsState: StateFlow = totalAlerts.asStateFlow() fun showSnackbarAndRefreshCardsList() { diff --git a/app/src/main/java/com/kickstarter/mock/services/MockApolloClient.kt b/app/src/main/java/com/kickstarter/mock/services/MockApolloClient.kt index cab3cc92ff..66abb2aff5 100644 --- a/app/src/main/java/com/kickstarter/mock/services/MockApolloClient.kt +++ b/app/src/main/java/com/kickstarter/mock/services/MockApolloClient.kt @@ -8,6 +8,8 @@ import UpdateUserEmailMutation import UpdateUserPasswordMutation import UserPrivacyQuery import android.util.Pair +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewEnvelope +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewQueryData import com.kickstarter.mock.factories.BackingFactory import com.kickstarter.mock.factories.CategoryFactory import com.kickstarter.mock.factories.CheckoutFactory @@ -304,6 +306,10 @@ open class MockApolloClientV2 : ApolloClientTypeV2 { override fun createOrUpdateBackingAddress(eventInput: CreateOrUpdateBackingAddressData): io.reactivex.Observable { return io.reactivex.Observable.empty() } + + override fun getPledgedProjectsOverviewPledges(inputData: PledgedProjectsOverviewQueryData): io.reactivex.Observable { + return io.reactivex.Observable.empty() + } } open class MockApolloClient : ApolloClientType { diff --git a/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt b/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt index 40dadf203d..98c6474b4a 100644 --- a/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt +++ b/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt @@ -46,6 +46,8 @@ import com.apollographql.apollo.api.Response import com.apollographql.apollo.exception.ApolloException import com.google.android.gms.common.util.Base64Utils import com.google.gson.Gson +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewEnvelope +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewQueryData import com.kickstarter.libs.utils.extensions.isNotNull import com.kickstarter.models.Backing import com.kickstarter.models.Category @@ -81,7 +83,9 @@ import com.kickstarter.services.transformers.decodeRelayId import com.kickstarter.services.transformers.encodeRelayId import com.kickstarter.services.transformers.getCreateAttributionEventMutation import com.kickstarter.services.transformers.getCreateOrUpdateBackingAddressMutation +import com.kickstarter.services.transformers.getPledgedProjectsOverviewQuery import com.kickstarter.services.transformers.getTriggerThirdPartyEventMutation +import com.kickstarter.services.transformers.pledgedProjectsOverviewEnvelopeTransformer import com.kickstarter.services.transformers.projectTransformer import com.kickstarter.services.transformers.rewardTransformer import com.kickstarter.services.transformers.shippingRulesListTransformer @@ -195,6 +199,8 @@ interface ApolloClientTypeV2 { fun createAttributionEvent(eventInput: CreateAttributionEventData): Observable fun createOrUpdateBackingAddress(eventInput: CreateOrUpdateBackingAddressData): Observable + + fun getPledgedProjectsOverviewPledges(inputData: PledgedProjectsOverviewQueryData): Observable } private const val PAGE_SIZE = 25 @@ -1661,4 +1667,35 @@ class KSApolloClientV2(val service: ApolloClient, val gson: Gson) : ApolloClient return@defer ps } } + + override fun getPledgedProjectsOverviewPledges(inputData: PledgedProjectsOverviewQueryData): Observable { + return Observable.defer { + val ps = PublishSubject.create() + + this.service.query( + getPledgedProjectsOverviewQuery(inputData) + ) + .enqueue(object : ApolloCall.Callback() { + override fun onFailure(e: ApolloException) { + ps.onError(e) + } + + override fun onResponse(response: Response) { + response.data?.let { data -> + Observable.just(data.pledgeProjectsOverview()) + .filter { it.pledges() != null } + .map { pledgeProjectsOverview -> + pledgedProjectsOverviewEnvelopeTransformer(pledgeProjectsOverview) + } + .filter { it.isNotNull() } + .subscribe { + ps.onNext(it) + ps.onComplete() + } + } + } + }) + return@defer ps + }.subscribeOn(Schedulers.io()) + } } diff --git a/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt b/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt index 0b6829fa8b..4d58c6cc71 100644 --- a/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt +++ b/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt @@ -2,10 +2,14 @@ package com.kickstarter.services.transformers import CreateAttributionEventMutation import CreateOrUpdateBackingAddressMutation +import PledgedProjectsOverviewQuery import TriggerThirdPartyEventMutation import UserPrivacyQuery import com.google.android.gms.common.util.Base64Utils import com.google.gson.Gson +import com.kickstarter.features.pledgedprojectsoverview.data.PPOCard +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewEnvelope +import com.kickstarter.features.pledgedprojectsoverview.data.PledgedProjectsOverviewQueryData import com.kickstarter.libs.Permission import com.kickstarter.libs.utils.extensions.negate import com.kickstarter.mock.factories.RewardFactory @@ -32,6 +36,7 @@ import com.kickstarter.models.UserPrivacy import com.kickstarter.models.Video import com.kickstarter.models.Web import com.kickstarter.services.apiresponses.ShippingRulesEnvelope +import com.kickstarter.services.apiresponses.commentresponse.PageInfoEnvelope import com.kickstarter.services.mutations.CreateAttributionEventData import com.kickstarter.services.mutations.CreateOrUpdateBackingAddressData import com.kickstarter.viewmodels.usecases.TPEventInputData @@ -899,3 +904,53 @@ fun getCreateOrUpdateBackingAddressMutation(eventInput: CreateOrUpdateBackingAdd return CreateOrUpdateBackingAddressMutation.builder().input(graphInput).build() } + +fun getPledgedProjectsOverviewQuery(queryInput: PledgedProjectsOverviewQueryData): PledgedProjectsOverviewQuery { + return PledgedProjectsOverviewQuery.builder() + .after(queryInput.after) + .before(queryInput.before) + .first(queryInput.first) + .last(queryInput.last) + .build() +} + +fun pledgedProjectsOverviewEnvelopeTransformer(ppoResponse: PledgedProjectsOverviewQuery.PledgeProjectsOverview): PledgedProjectsOverviewEnvelope { + val ppoCards = ppoResponse.pledges()?.edges()?.map { + val ppoBackingData = it.node()?.backing()?.fragments()?.ppoCard() + PPOCard.builder() + .backingId(ppoBackingData?.id()) + .amount(ppoBackingData?.amount()?.fragments()?.amount()?.amount()) + .currencyCode(ppoBackingData?.amount()?.fragments()?.amount()?.currency()) + .currencySymbol(ppoBackingData?.amount()?.fragments()?.amount()?.symbol()) + .projectName(ppoBackingData?.project()?.name()) + .projectId(ppoBackingData?.project()?.id()) + .projectSlug(ppoBackingData?.project()?.slug()) + .imageUrl(ppoBackingData?.project()?.fragments()?.full()?.image()?.url()) + .creatorName(ppoBackingData?.project()?.creator()?.name()) + .build() + // will add additional fields such as card type and badges once backend response is finished + } + + val categories = ppoResponse.categories()?.map { + com.kickstarter.features.pledgedprojectsoverview.data.Category.builder() + .title(it.title()) + .count(it.count()) + .slug(it.slug()) + .build() + } + + val pageInfoEnvelope = ppoResponse.pledges()?.pageInfo().let { + PageInfoEnvelope.builder() + .hasNextPage(it?.hasNextPage() ?: false) + .endCursor(it?.endCursor() ?: "") + .hasPreviousPage(it?.hasPreviousPage() ?: false) + .startCursor(it?.startCursor() ?: "") + .build() + } + + return PledgedProjectsOverviewEnvelope.builder() + .pledges(ppoCards) + .categories(categories) + .pageInfoEnvelope(pageInfoEnvelope) + .build() +} diff --git a/app/src/test/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreenTest.kt b/app/src/test/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreenTest.kt index ef23c5e534..cb04e60336 100644 --- a/app/src/test/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreenTest.kt +++ b/app/src/test/java/com/kickstarter/features/pledgedprojectsoverview/ui/PledgedProjectsOverviewScreenTest.kt @@ -8,11 +8,13 @@ import androidx.compose.ui.test.performClick import androidx.paging.PagingData import androidx.paging.compose.collectAsLazyPagingItems import com.kickstarter.KSRobolectricTestCase +import com.kickstarter.features.pledgedprojectsoverview.data.PPOCardFactory import com.kickstarter.ui.compose.designsystem.KSTheme import kotlinx.coroutines.flow.flowOf import org.junit.Test -class PledgedProjectsOverviewScreenTest : KSRobolectricTestCase() { +class +PledgedProjectsOverviewScreenTest : KSRobolectricTestCase() { private val backButton = composeTestRule.onNodeWithTag(PledgedProjectsOverviewScreenTestTag.BACK_BUTTON.name) @@ -20,17 +22,17 @@ class PledgedProjectsOverviewScreenTest : KSRobolectricTestCase() { fun testBackButtonClick() { var backClickedCount = 0 composeTestRule.setContent { - val ppoCardList1 = (0..10).map { - PPOCardDataMock() + val ppoCardList = (0..10).map { + PPOCardFactory.confirmAddressCard() } - val ppoCardList = flowOf(PagingData.from(ppoCardList1)).collectAsLazyPagingItems() + val ppoCardPagingList = flowOf(PagingData.from(ppoCardList)).collectAsLazyPagingItems() KSTheme { PledgedProjectsOverviewScreen( modifier = Modifier, onBackPressed = { backClickedCount++ }, lazyColumnListState = rememberLazyListState(), - ppoCards = ppoCardList, + ppoCards = ppoCardPagingList, errorSnackBarHostState = SnackbarHostState(), onSendMessageClick = {}, onAddressConfirmed = {},