diff --git a/app/components/ui/AppHeader.vue b/app/components/ui/AppHeader.vue index 0b1c4fe..fe6dae3 100644 --- a/app/components/ui/AppHeader.vue +++ b/app/components/ui/AppHeader.vue @@ -19,8 +19,8 @@ const centerCapsule = computed(() => { if (meQuery.result.value?.me?.role === 'MANAGER') { items.push( - { to: '/clients', label: 'Клиенты' }, - { to: '/client-orders', label: 'Заказы клиентов' }, + { to: '/clients', label: 'Пользователи' }, + { to: '/client-orders', label: 'Заказы' }, { to: '/bonus-system', label: 'Бонусы' }, ); } diff --git a/app/composables/graphql/generated.ts b/app/composables/graphql/generated.ts index 1d0fb90..912129a 100644 --- a/app/composables/graphql/generated.ts +++ b/app/composables/graphql/generated.ts @@ -174,6 +174,30 @@ export enum LoginChannel { Telegram = 'TELEGRAM' } +export type ManagerBonusBalance = { + __typename?: 'ManagerBonusBalance'; + balance: Scalars['Float']['output']; + companyName?: Maybe; + email: Scalars['String']['output']; + fullName: Scalars['String']['output']; + pendingWithdrawalAmount: Scalars['Float']['output']; + transactionsCount: Scalars['Int']['output']; + userId: Scalars['ID']['output']; +}; + +export type ManagerUser = { + __typename?: 'ManagerUser'; + companyName?: Maybe; + createdAt: Scalars['DateTime']['output']; + email: Scalars['String']['output']; + fullName: Scalars['String']['output']; + id: Scalars['ID']['output']; + inn?: Maybe; + lastOrderAt?: Maybe; + orderCount: Scalars['Int']['output']; + role: UserRole; +}; + export type MessengerConnection = { __typename?: 'MessengerConnection'; avatarAvailable: Scalars['Boolean']['output']; @@ -476,8 +500,10 @@ export type Query = { __typename?: 'Query'; clientProducts: Array; healthcheck: Scalars['String']['output']; + managerBonusBalances: Array; managerNotificationHistory: Array; managerOrders: Array; + managerUsers: Array; me?: Maybe; myCart: Cart; myCounterpartyProfile?: Maybe; @@ -778,6 +804,11 @@ export type CreateReferralMutationVariables = Exact<{ export type CreateReferralMutation = { __typename?: 'Mutation', createReferral: { __typename?: 'ReferralLink', id: string, referrerId: string, refereeId: string, createdAt: any } }; +export type ManagerBonusBalancesQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ManagerBonusBalancesQuery = { __typename?: 'Query', managerBonusBalances: Array<{ __typename?: 'ManagerBonusBalance', userId: string, email: string, fullName: string, companyName?: string | null, balance: number, pendingWithdrawalAmount: number, transactionsCount: number }> }; + export type ManagerFinalizeOrderMutationVariables = Exact<{ orderId: Scalars['ID']['input']; decision: Decision; @@ -793,6 +824,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 }> }> }; +export type ManagerUsersQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ManagerUsersQuery = { __typename?: 'Query', managerUsers: Array<{ __typename?: 'ManagerUser', id: string, email: string, fullName: string, role: UserRole, companyName?: string | null, inn?: string | null, createdAt: any, orderCount: number, lastOrderAt?: any | null }> }; + export type ReferralStatsQueryVariables = Exact<{ [key: string]: never; }>; @@ -1558,6 +1594,39 @@ export function useCreateReferralMutation(options: VueApolloComposable.UseMutati return VueApolloComposable.useMutation(CreateReferralDocument, options); } export type CreateReferralMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn; +export const ManagerBonusBalancesDocument = gql` + query ManagerBonusBalances { + managerBonusBalances { + userId + email + fullName + companyName + balance + pendingWithdrawalAmount + transactionsCount + } +} + `; + +/** + * __useManagerBonusBalancesQuery__ + * + * To run a query within a Vue component, call `useManagerBonusBalancesQuery` and pass it any options that fit your needs. + * When your component renders, `useManagerBonusBalancesQuery` 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 } = useManagerBonusBalancesQuery(); + */ +export function useManagerBonusBalancesQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useQuery(ManagerBonusBalancesDocument, {}, options); +} +export function useManagerBonusBalancesLazyQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useLazyQuery(ManagerBonusBalancesDocument, {}, options); +} +export type ManagerBonusBalancesQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; export const ManagerFinalizeOrderDocument = gql` mutation ManagerFinalizeOrder($orderId: ID!, $decision: Decision!) { managerFinalizeOrder(orderId: $orderId, decision: $decision) { @@ -1634,6 +1703,41 @@ export function useManagerOrdersLazyQuery(variables: ManagerOrdersQueryVariables return VueApolloComposable.useLazyQuery(ManagerOrdersDocument, variables, options); } export type ManagerOrdersQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; +export const ManagerUsersDocument = gql` + query ManagerUsers { + managerUsers { + id + email + fullName + role + companyName + inn + createdAt + orderCount + lastOrderAt + } +} + `; + +/** + * __useManagerUsersQuery__ + * + * To run a query within a Vue component, call `useManagerUsersQuery` and pass it any options that fit your needs. + * When your component renders, `useManagerUsersQuery` 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 } = useManagerUsersQuery(); + */ +export function useManagerUsersQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useQuery(ManagerUsersDocument, {}, options); +} +export function useManagerUsersLazyQuery(options: VueApolloComposable.UseQueryOptions | VueCompositionApi.Ref> | ReactiveFunction> = {}) { + return VueApolloComposable.useLazyQuery(ManagerUsersDocument, {}, options); +} +export type ManagerUsersQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn; export const ReferralStatsDocument = gql` query ReferralStats { referralStats { diff --git a/app/pages/bonus-system/index.vue b/app/pages/bonus-system/index.vue index e81ab9e..46206bc 100644 --- a/app/pages/bonus-system/index.vue +++ b/app/pages/bonus-system/index.vue @@ -1,7 +1,9 @@