From 86eee08d87a444c04543e18fc21ac859d48ae38c Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Tue, 7 Apr 2026 10:48:07 +0700 Subject: [PATCH] Add bonus program link generation --- app/composables/graphql/generated.ts | 53 +++++++++++ app/pages/bonus-system/[userId].vue | 95 ++++++++++++++++++- .../bonus/create-bonus-program-link.graphql | 8 ++ graphql/schema.graphql | 8 ++ 4 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 graphql/operations/bonus/create-bonus-program-link.graphql diff --git a/app/composables/graphql/generated.ts b/app/composables/graphql/generated.ts index 6549385..054c6fe 100644 --- a/app/composables/graphql/generated.ts +++ b/app/composables/graphql/generated.ts @@ -47,6 +47,14 @@ export type AuthSession = { user: User; }; +export type BonusProgramLink = { + __typename?: 'BonusProgramLink'; + expiresAt: Scalars['DateTime']['output']; + token: Scalars['String']['output']; + url: Scalars['String']['output']; + userId: Scalars['ID']['output']; +}; + export type BonusTransaction = { __typename?: 'BonusTransaction'; amount: Scalars['Float']['output']; @@ -300,6 +308,7 @@ export type Mutation = { clientReviewOrder: Order; connectMessenger: MessengerConnection; consumeLoginToken: AuthSession; + createBonusProgramLink: BonusProgramLink; createInvitation: Invitation; createMyDeliveryAddress: DeliveryAddress; createReferral: ReferralLink; @@ -355,6 +364,11 @@ export type MutationConsumeLoginTokenArgs = { }; +export type MutationCreateBonusProgramLinkArgs = { + userId: Scalars['ID']['input']; +}; + + export type MutationCreateInvitationArgs = { input: CreateInvitationInput; }; @@ -830,6 +844,13 @@ export type VerifyLoginCodeMutationVariables = Exact<{ export type VerifyLoginCodeMutation = { __typename?: 'Mutation', verifyLoginCode: { __typename?: 'AuthSession', accessToken: string, expiresAt: any, user: { __typename?: 'User', id: string, email: string, fullName: string, role: UserRole, company?: { __typename?: 'Company', id: string } | null } } }; +export type CreateBonusProgramLinkMutationVariables = Exact<{ + userId: Scalars['ID']['input']; +}>; + + +export type CreateBonusProgramLinkMutation = { __typename?: 'Mutation', createBonusProgramLink: { __typename?: 'BonusProgramLink', userId: string, token: string, url: string, expiresAt: any } }; + export type RequestRewardWithdrawalMutationVariables = Exact<{ input: RequestRewardWithdrawalInput; }>; @@ -1283,6 +1304,38 @@ export function useVerifyLoginCodeMutation(options: VueApolloComposable.UseMutat return VueApolloComposable.useMutation(VerifyLoginCodeDocument, options); } export type VerifyLoginCodeMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn; +export const CreateBonusProgramLinkDocument = gql` + mutation CreateBonusProgramLink($userId: ID!) { + createBonusProgramLink(userId: $userId) { + userId + token + url + expiresAt + } +} + `; + +/** + * __useCreateBonusProgramLinkMutation__ + * + * To run a mutation, you first call `useCreateBonusProgramLinkMutation` within a Vue component and pass it any options that fit your needs. + * When your component renders, `useCreateBonusProgramLinkMutation` returns an object that includes: + * - A mutate function that you can call at any time to execute the mutation + * - Several other properties: https://v4.apollo.vuejs.org/api/use-mutation.html#return + * + * @param options that will be passed into the mutation, supported options are listed on: https://v4.apollo.vuejs.org/guide-composable/mutation.html#options; + * + * @example + * const { mutate, loading, error, onDone } = useCreateBonusProgramLinkMutation({ + * variables: { + * userId: // value for 'userId' + * }, + * }); + */ +export function useCreateBonusProgramLinkMutation(options: VueApolloComposable.UseMutationOptions | ReactiveFunction> = {}) { + return VueApolloComposable.useMutation(CreateBonusProgramLinkDocument, options); +} +export type CreateBonusProgramLinkMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn; export const RequestRewardWithdrawalDocument = gql` mutation RequestRewardWithdrawal($input: RequestRewardWithdrawalInput!) { requestRewardWithdrawal(input: $input) { diff --git a/app/pages/bonus-system/[userId].vue b/app/pages/bonus-system/[userId].vue index 5bb4b4f..87f81bc 100644 --- a/app/pages/bonus-system/[userId].vue +++ b/app/pages/bonus-system/[userId].vue @@ -1,6 +1,7 @@