'use client' import type { FC } from 'react' import React from 'react' import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { createApp, updateAppApiStatus, updateAppModelConfig, updateAppRateLimit, updateAppSiteAccessToken, updateAppSiteConfig, updateAppSiteStatus } from '../apps' import Loading from '@/app/components/base/loading' import { AppModeEnum } from '@/types/app' import { useAppDailyConversations, useAppDailyEndUsers, useAppDetail, useAppList, } from '../use-apps' const Service: FC = () => { const appId = '1' const queryClient = useQueryClient() const { data: appList, error: appListError, isLoading: isAppListLoading } = useAppList({ page: 1, limit: 30, name: '' }) const { data: firstApp, error: appDetailError, isLoading: isAppDetailLoading } = useAppDetail(appId) const { data: updateAppSiteStatusRes, error: err1, isLoading: isUpdatingSiteStatus } = useQuery({ queryKey: ['demo', 'updateAppSiteStatus', appId], queryFn: () => updateAppSiteStatus({ url: '/apps', body: { enable_site: false } }), }) const { data: updateAppApiStatusRes, error: err2, isLoading: isUpdatingApiStatus } = useQuery({ queryKey: ['demo', 'updateAppApiStatus', appId], queryFn: () => updateAppApiStatus({ url: '/apps', body: { enable_api: true } }), }) const { data: updateAppRateLimitRes, error: err3, isLoading: isUpdatingRateLimit } = useQuery({ queryKey: ['demo', 'updateAppRateLimit', appId], queryFn: () => updateAppRateLimit({ url: '/apps', body: { api_rpm: 10, api_rph: 20 } }), }) const { data: updateAppSiteCodeRes, error: err4, isLoading: isUpdatingSiteCode } = useQuery({ queryKey: ['demo', 'updateAppSiteAccessToken', appId], queryFn: () => updateAppSiteAccessToken({ url: '/apps' }), }) const { data: updateAppSiteConfigRes, error: err5, isLoading: isUpdatingSiteConfig } = useQuery({ queryKey: ['demo', 'updateAppSiteConfig', appId], queryFn: () => updateAppSiteConfig({ url: '/apps', body: { title: 'title test', author: 'author test' } }), }) const { data: getAppDailyConversationsRes, error: err6, isLoading: isConversationsLoading } = useAppDailyConversations(appId, { start: '1', end: '2' }) const { data: getAppDailyEndUsersRes, error: err7, isLoading: isEndUsersLoading } = useAppDailyEndUsers(appId, { start: '1', end: '2' }) const { data: updateAppModelConfigRes, error: err8, isLoading: isUpdatingModelConfig } = useQuery({ queryKey: ['demo', 'updateAppModelConfig', appId], queryFn: () => updateAppModelConfig({ url: '/apps', body: { model_id: 'gpt-100' } }), }) const { mutateAsync: mutateCreateApp } = useMutation({ mutationKey: ['demo', 'createApp'], mutationFn: () => createApp({ name: `new app${Math.round(Math.random() * 100)}`, mode: AppModeEnum.CHAT, }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['apps', 'list'], }) }, }) const handleCreateApp = async () => { await mutateCreateApp() } if (appListError || appDetailError || err1 || err2 || err3 || err4 || err5 || err6 || err7 || err8) return