diff --git a/app/composables/graphql/generated.ts b/app/composables/graphql/generated.ts index 49e6d3a..e5dd4c7 100644 --- a/app/composables/graphql/generated.ts +++ b/app/composables/graphql/generated.ts @@ -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; + refereeEmail: Scalars['String']['output']; + refereeId: Scalars['ID']['output']; + refereeName: Scalars['String']['output']; + referrerCompanyName?: Maybe; + referrerEmail: Scalars['String']['output']; + referrerId: Scalars['ID']['output']; + referrerName: Scalars['String']['output']; +}; + export type ManagerUser = { __typename?: 'ManagerUser'; companyName?: Maybe; @@ -526,6 +544,7 @@ export type Query = { managerBonusBalances: Array; managerNotificationHistory: Array; managerOrders: Array; + managerReferralLinks: Array; managerUsers: Array; managerWithdrawalRequests: Array; me?: Maybe; @@ -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; @@ -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(ManagerOrdersDocument, variables, options); } export type ManagerOrdersQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; +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 | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useQuery(ManagerReferralLinksDocument, {}, options); +} +export function useManagerReferralLinksLazyQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useLazyQuery(ManagerReferralLinksDocument, {}, options); +} +export type ManagerReferralLinksQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; 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 diff --git a/app/pages/bonus-system/index.vue b/app/pages/bonus-system/index.vue index ccff450..b7240a7 100644 --- a/app/pages/bonus-system/index.vue +++ b/app/pages/bonus-system/index.vue @@ -92,6 +92,12 @@ const filteredWithdrawals = computed(() => { title="Бонусы" :search-placeholder="activeTab === 'balances' ? 'Пользователь, email или сумма' : 'Пользователь, сумма или статус'" > + + diff --git a/graphql/operations/manager/create-referral.graphql b/graphql/operations/manager/create-referral.graphql index dcb3d32..d9442bb 100644 --- a/graphql/operations/manager/create-referral.graphql +++ b/graphql/operations/manager/create-referral.graphql @@ -3,6 +3,8 @@ mutation CreateReferral($input: CreateReferralInput!) { id referrerId refereeId + createdById + bonusPercent createdAt } } diff --git a/graphql/operations/manager/manager-referral-links.graphql b/graphql/operations/manager/manager-referral-links.graphql new file mode 100644 index 0000000..e4c02e4 --- /dev/null +++ b/graphql/operations/manager/manager-referral-links.graphql @@ -0,0 +1,16 @@ +query ManagerReferralLinks { + managerReferralLinks { + id + referrerId + referrerName + referrerEmail + referrerCompanyName + refereeId + refereeName + refereeEmail + refereeCompanyName + createdById + bonusPercent + createdAt + } +} diff --git a/graphql/operations/manager/manager-users.graphql b/graphql/operations/manager/manager-users.graphql index 7d0aeab..2097486 100644 --- a/graphql/operations/manager/manager-users.graphql +++ b/graphql/operations/manager/manager-users.graphql @@ -1,7 +1,10 @@ query ManagerUsers { managerUsers { id + email fullName + role + companyName telegramConnection { id type diff --git a/graphql/schema.graphql b/graphql/schema.graphql index 4303961..b813dae 100644 --- a/graphql/schema.graphql +++ b/graphql/schema.graphql @@ -269,6 +269,23 @@ type ReferralLink { id: ID! referrerId: ID! refereeId: ID! + createdById: ID! + bonusPercent: Float! + createdAt: DateTime! +} + +type ManagerReferralLink { + id: ID! + referrerId: ID! + referrerName: String! + referrerEmail: String! + referrerCompanyName: String + refereeId: ID! + refereeName: String! + refereeEmail: String! + refereeCompanyName: String + createdById: ID! + bonusPercent: Float! createdAt: DateTime! } @@ -339,6 +356,7 @@ type Query { myCurrentOrders: [Order!]! managerUsers: [ManagerUser!]! managerOrders(status: OrderStatus, customerId: ID): [Order!]! + managerReferralLinks: [ManagerReferralLink!]! managerBonusBalances: [ManagerBonusBalance!]! managerWithdrawalRequests(status: WithdrawalStatus): [ManagerWithdrawalRequest!]! registrationRequests(status: RegistrationStatus): [RegistrationRequest!]! @@ -447,7 +465,9 @@ input BlockOrderInput { } input CreateReferralInput { + referrerUserId: ID! refereeUserId: ID! + bonusPercent: Float! } input AddBonusTransactionInput {