add schema and operations for submit cancellation feedback, along with associated enum

This commit is contained in:
2025-12-16 16:51:08 -08:00
parent ced1b153de
commit f5e6459882
3 changed files with 115 additions and 0 deletions

View File

@@ -140,6 +140,21 @@ export type BucketSetInputGql = {
feature: Scalars["String"]["input"]; feature: Scalars["String"]["input"];
}; };
export type CancellationFeedbackMetadataInput = {
appVersion?: InputMaybe<Scalars["String"]["input"]>;
gitRevision?: InputMaybe<Scalars["String"]["input"]>;
platform?: InputMaybe<Scalars["String"]["input"]>;
};
export enum CancellationReasonEnum {
DataNotAccurate = "DATA_NOT_ACCURATE",
DontPlayEnough = "DONT_PLAY_ENOUGH",
MissingFeatures = "MISSING_FEATURES",
Other = "OTHER",
TechnicalIssues = "TECHNICAL_ISSUES",
TooExpensive = "TOO_EXPENSIVE",
}
export type Challenge = { export type Challenge = {
__typename?: "Challenge"; __typename?: "Challenge";
createdAt: Scalars["DateTime"]["output"]; createdAt: Scalars["DateTime"]["output"];
@@ -2361,6 +2376,7 @@ export type Mutation = {
setLoggerLevel: Scalars["Boolean"]["output"]; setLoggerLevel: Scalars["Boolean"]["output"];
setSegmentDuration: Scalars["Boolean"]["output"]; setSegmentDuration: Scalars["Boolean"]["output"];
startChallenge: ChallengeEntry; startChallenge: ChallengeEntry;
submitCancellationFeedback: Scalars["Boolean"]["output"];
submitChallengeEntry: ChallengeEntry; submitChallengeEntry: ChallengeEntry;
undismissChallenge: Scalars["Boolean"]["output"]; undismissChallenge: Scalars["Boolean"]["output"];
unfollowUser: UserGql; unfollowUser: UserGql;
@@ -2537,6 +2553,12 @@ export type MutationStartChallengeArgs = {
challengeId: Scalars["ID"]["input"]; challengeId: Scalars["ID"]["input"];
}; };
export type MutationSubmitCancellationFeedbackArgs = {
feedback?: InputMaybe<Scalars["String"]["input"]>;
metadata?: InputMaybe<CancellationFeedbackMetadataInput>;
reasons?: InputMaybe<Array<CancellationReasonEnum>>;
};
export type MutationSubmitChallengeEntryArgs = { export type MutationSubmitChallengeEntryArgs = {
entryId: Scalars["ID"]["input"]; entryId: Scalars["ID"]["input"];
videoId: Scalars["ID"]["input"]; videoId: Scalars["ID"]["input"];
@@ -4707,6 +4729,17 @@ export type CancelSubscriptionMutation = {
}; };
}; };
export type SubmitCancellationFeedbackMutationVariables = Exact<{
reasons?: InputMaybe<Array<CancellationReasonEnum> | CancellationReasonEnum>;
feedback?: InputMaybe<Scalars["String"]["input"]>;
metadata?: InputMaybe<CancellationFeedbackMetadataInput>;
}>;
export type SubmitCancellationFeedbackMutation = {
__typename?: "Mutation";
submitCancellationFeedback: boolean;
};
export type ReactToVideoMutationVariables = Exact<{ export type ReactToVideoMutationVariables = Exact<{
videoId: Scalars["Int"]["input"]; videoId: Scalars["Int"]["input"];
reaction?: InputMaybe<ReactionEnum>; reaction?: InputMaybe<ReactionEnum>;
@@ -9644,6 +9677,61 @@ export type CancelSubscriptionMutationOptions = Apollo.BaseMutationOptions<
CancelSubscriptionMutation, CancelSubscriptionMutation,
CancelSubscriptionMutationVariables CancelSubscriptionMutationVariables
>; >;
export const SubmitCancellationFeedbackDocument = gql`
mutation SubmitCancellationFeedback(
$reasons: [CancellationReasonEnum!]
$feedback: String
$metadata: CancellationFeedbackMetadataInput
) {
submitCancellationFeedback(reasons: $reasons, feedback: $feedback)
}
`;
export type SubmitCancellationFeedbackMutationFn = Apollo.MutationFunction<
SubmitCancellationFeedbackMutation,
SubmitCancellationFeedbackMutationVariables
>;
/**
* __useSubmitCancellationFeedbackMutation__
*
* To run a mutation, you first call `useSubmitCancellationFeedbackMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useSubmitCancellationFeedbackMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [submitCancellationFeedbackMutation, { data, loading, error }] = useSubmitCancellationFeedbackMutation({
* variables: {
* reasons: // value for 'reasons'
* feedback: // value for 'feedback'
* metadata: // value for 'metadata'
* },
* });
*/
export function useSubmitCancellationFeedbackMutation(
baseOptions?: Apollo.MutationHookOptions<
SubmitCancellationFeedbackMutation,
SubmitCancellationFeedbackMutationVariables
>,
) {
const options = { ...defaultOptions, ...baseOptions };
return Apollo.useMutation<
SubmitCancellationFeedbackMutation,
SubmitCancellationFeedbackMutationVariables
>(SubmitCancellationFeedbackDocument, options);
}
export type SubmitCancellationFeedbackMutationHookResult = ReturnType<
typeof useSubmitCancellationFeedbackMutation
>;
export type SubmitCancellationFeedbackMutationResult =
Apollo.MutationResult<SubmitCancellationFeedbackMutation>;
export type SubmitCancellationFeedbackMutationOptions =
Apollo.BaseMutationOptions<
SubmitCancellationFeedbackMutation,
SubmitCancellationFeedbackMutationVariables
>;
export const ReactToVideoDocument = gql` export const ReactToVideoDocument = gql`
mutation ReactToVideo($videoId: Int!, $reaction: ReactionEnum) { mutation ReactToVideo($videoId: Int!, $reaction: ReactionEnum) {
reactToVideo(videoId: $videoId, reaction: $reaction) reactToVideo(videoId: $videoId, reaction: $reaction)

View File

@@ -63,3 +63,10 @@ mutation CancelSubscription {
stripeSubscriptionId stripeSubscriptionId
} }
} }
mutation SubmitCancellationFeedback(
$reasons: [CancellationReasonEnum!]
$feedback: String
$metadata: CancellationFeedbackMetadataInput
) {
submitCancellationFeedback(reasons: $reasons, feedback: $feedback)
}

View File

@@ -1072,6 +1072,11 @@ type Mutation {
deleteUser: Boolean! deleteUser: Boolean!
createSubscription(priceId: String!): CreateSubscriptionResultGQL! createSubscription(priceId: String!): CreateSubscriptionResultGQL!
cancelSubscription: UserSubscriptionStatusGQL! cancelSubscription: UserSubscriptionStatusGQL!
submitCancellationFeedback(
reasons: [CancellationReasonEnum!] = null
feedback: String = null
metadata: CancellationFeedbackMetadataInput = null
): Boolean!
findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL findPrerecordTableLayout(b64Image: String!, videoId: Int!): HomographyInfoGQL
createUploadStream( createUploadStream(
videoMetadata: VideoMetadataInput! videoMetadata: VideoMetadataInput!
@@ -1196,6 +1201,21 @@ type CreateSubscriptionResultGQL {
sessionId: String! sessionId: String!
} }
enum CancellationReasonEnum {
DONT_PLAY_ENOUGH
TOO_EXPENSIVE
MISSING_FEATURES
TECHNICAL_ISSUES
DATA_NOT_ACCURATE
OTHER
}
input CancellationFeedbackMetadataInput {
appVersion: String = null
gitRevision: String = null
platform: String = null
}
type CreateUploadStreamReturn { type CreateUploadStreamReturn {
videoId: Int! videoId: Int!
} }