Add client referral bonus manager flow

This commit is contained in:
Ruslan Bakiev
2026-04-04 14:59:02 +07:00
parent ad1f6b8a35
commit 540418c1dc
7 changed files with 262 additions and 15 deletions

View File

@@ -134,7 +134,9 @@ export type CreateMyDeliveryAddressInput = {
};
export type CreateReferralInput = {
bonusPercent: Scalars['Float']['input'];
refereeUserId: Scalars['ID']['input'];
referrerUserId: Scalars['ID']['input'];
};
export enum Decision {
@@ -185,6 +187,22 @@ export type ManagerBonusBalance = {
userId: Scalars['ID']['output'];
};
export type ManagerReferralLink = {
__typename?: 'ManagerReferralLink';
bonusPercent: Scalars['Float']['output'];
createdAt: Scalars['DateTime']['output'];
createdById: Scalars['ID']['output'];
id: Scalars['ID']['output'];
refereeCompanyName?: Maybe<Scalars['String']['output']>;
refereeEmail: Scalars['String']['output'];
refereeId: Scalars['ID']['output'];
refereeName: Scalars['String']['output'];
referrerCompanyName?: Maybe<Scalars['String']['output']>;
referrerEmail: Scalars['String']['output'];
referrerId: Scalars['ID']['output'];
referrerName: Scalars['String']['output'];
};
export type ManagerUser = {
__typename?: 'ManagerUser';
companyName?: Maybe<Scalars['String']['output']>;
@@ -526,6 +544,7 @@ export type Query = {
managerBonusBalances: Array<ManagerBonusBalance>;
managerNotificationHistory: Array<NotificationHistoryItem>;
managerOrders: Array<Order>;
managerReferralLinks: Array<ManagerReferralLink>;
managerUsers: Array<ManagerUser>;
managerWithdrawalRequests: Array<ManagerWithdrawalRequest>;
me?: Maybe<User>;
@@ -582,7 +601,9 @@ export type ReadyOrderItemInput = {
export type ReferralLink = {
__typename?: 'ReferralLink';
bonusPercent: Scalars['Float']['output'];
createdAt: Scalars['DateTime']['output'];
createdById: Scalars['ID']['output'];
id: Scalars['ID']['output'];
refereeId: Scalars['ID']['output'];
referrerId: Scalars['ID']['output'];
@@ -839,7 +860,7 @@ export type CreateReferralMutationVariables = Exact<{
}>;
export type CreateReferralMutation = { __typename?: 'Mutation', createReferral: { __typename?: 'ReferralLink', id: string, referrerId: string, refereeId: string, createdAt: any } };
export type CreateReferralMutation = { __typename?: 'Mutation', createReferral: { __typename?: 'ReferralLink', id: string, referrerId: string, refereeId: string, createdById: string, bonusPercent: number, createdAt: any } };
export type ManagerBonusBalancesQueryVariables = Exact<{ [key: string]: never; }>;
@@ -862,6 +883,11 @@ export type ManagerOrdersQueryVariables = Exact<{
export type ManagerOrdersQuery = { __typename?: 'Query', managerOrders: Array<{ __typename?: 'Order', id: string, code: string, status: OrderStatus, kind: OrderKind, customerId: string, deliveryAddress?: string | null, deliveryTerms?: string | null, deliveryFee?: number | null, totalPrice?: number | null, createdAt: any, items: Array<{ __typename?: 'OrderItem', id: string, productName: string, quantity: number, unitPrice?: number | null, lineTotal?: number | null }> }> };
export type ManagerReferralLinksQueryVariables = Exact<{ [key: string]: never; }>;
export type ManagerReferralLinksQuery = { __typename?: 'Query', managerReferralLinks: Array<{ __typename?: 'ManagerReferralLink', id: string, referrerId: string, referrerName: string, referrerEmail: string, referrerCompanyName?: string | null, refereeId: string, refereeName: string, refereeEmail: string, refereeCompanyName?: string | null, createdById: string, bonusPercent: number, createdAt: any }> };
export type ManagerUsersDetailQueryVariables = Exact<{ [key: string]: never; }>;
@@ -870,7 +896,7 @@ export type ManagerUsersDetailQuery = { __typename?: 'Query', managerUsers: Arra
export type ManagerUsersQueryVariables = Exact<{ [key: string]: never; }>;
export type ManagerUsersQuery = { __typename?: 'Query', managerUsers: Array<{ __typename?: 'ManagerUser', id: string, fullName: string, telegramConnection?: { __typename?: 'MessengerConnection', id: string, type: MessengerType, channelId: string, displayName?: string | null, username?: string | null, avatarAvailable: boolean } | null }> };
export type ManagerUsersQuery = { __typename?: 'Query', managerUsers: Array<{ __typename?: 'ManagerUser', id: string, email: string, fullName: string, role: UserRole, companyName?: string | null, telegramConnection?: { __typename?: 'MessengerConnection', id: string, type: MessengerType, channelId: string, displayName?: string | null, username?: string | null, avatarAvailable: boolean } | null }> };
export type ManagerWithdrawalRequestsQueryVariables = Exact<{
status?: InputMaybe<WithdrawalStatus>;
@@ -1625,6 +1651,8 @@ export const CreateReferralDocument = gql`
id
referrerId
refereeId
createdById
bonusPercent
createdAt
}
}
@@ -1763,6 +1791,44 @@ export function useManagerOrdersLazyQuery(variables: ManagerOrdersQueryVariables
return VueApolloComposable.useLazyQuery<ManagerOrdersQuery, ManagerOrdersQueryVariables>(ManagerOrdersDocument, variables, options);
}
export type ManagerOrdersQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn<ManagerOrdersQuery, ManagerOrdersQueryVariables>;
export const ManagerReferralLinksDocument = gql`
query ManagerReferralLinks {
managerReferralLinks {
id
referrerId
referrerName
referrerEmail
referrerCompanyName
refereeId
refereeName
refereeEmail
refereeCompanyName
createdById
bonusPercent
createdAt
}
}
`;
/**
* __useManagerReferralLinksQuery__
*
* To run a query within a Vue component, call `useManagerReferralLinksQuery` and pass it any options that fit your needs.
* When your component renders, `useManagerReferralLinksQuery` returns an object from Apollo Client that contains result, loading and error properties
* you can use to render your UI.
*
* @param options that will be passed into the query, supported options are listed on: https://v4.apollo.vuejs.org/guide-composable/query.html#options;
*
* @example
* const { result, loading, error } = useManagerReferralLinksQuery();
*/
export function useManagerReferralLinksQuery(options: VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables> | VueCompositionApi.Ref<VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>> | ReactiveFunction<VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>> = {}) {
return VueApolloComposable.useQuery<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>(ManagerReferralLinksDocument, {}, options);
}
export function useManagerReferralLinksLazyQuery(options: VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables> | VueCompositionApi.Ref<VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>> | ReactiveFunction<VueApolloComposable.UseQueryOptions<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>> = {}) {
return VueApolloComposable.useLazyQuery<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>(ManagerReferralLinksDocument, {}, options);
}
export type ManagerReferralLinksQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn<ManagerReferralLinksQuery, ManagerReferralLinksQueryVariables>;
export const ManagerUsersDetailDocument = gql`
query ManagerUsersDetail {
managerUsers {
@@ -1809,7 +1875,10 @@ export const ManagerUsersDocument = gql`
query ManagerUsers {
managerUsers {
id
email
fullName
role
companyName
telegramConnection {
id
type