import { BaseService } from '../BaseService' import type { BaseResponse, WecomAccountBindingRequest, WecomApplication, WecomApplicationListResponse, WecomApplicationQueryParams, WecomApplicationRequest, WecomApplicationResponse, WecomBusinessFieldListResponse, WecomBusinessType, WecomMemberListResponse, WecomMemberQueryParams, WecomSceneListResponse, WecomSceneQueryParams, WecomSceneRequest, WecomSceneResponse, WecomSyncMembersApiResponse, WecomTemplateDetailResponse, WecomTemplateInspectRequest } from '@/types/api' export class WecomService extends BaseService { static getApplications( params?: WecomApplicationQueryParams ): Promise { return this.get('/api/admin/wecom/applications', params) } static saveApplication(data: WecomApplicationRequest): Promise { return this.post('/api/admin/wecom/applications', data) } static testApplication(id: number): Promise> { return this.post>(`/api/admin/wecom/applications/${id}/test`) } static syncMembers(id: number): Promise { return this.post( `/api/admin/wecom/applications/${id}/members/sync` ) } static getMembers(id: number, params?: WecomMemberQueryParams): Promise { return this.get(`/api/admin/wecom/applications/${id}/members`, params) } static setDefaultCreator(id: number, userid: string): Promise { return this.put( `/api/admin/wecom/applications/${id}/default-creator`, { userid } ) } static getScenes(params?: WecomSceneQueryParams): Promise { return this.get('/api/admin/wecom/scenes', params) } static saveScene( businessType: WecomBusinessType, data: WecomSceneRequest ): Promise { return this.put(`/api/admin/wecom/scenes/${businessType}`, data) } static inspectTemplate( applicationId: number, data: WecomTemplateInspectRequest ): Promise { return this.post( `/api/admin/wecom/applications/${applicationId}/templates/inspect`, data ) } static getBusinessFields( businessType: WecomBusinessType ): Promise { return this.get( `/api/admin/wecom/scenes/${businessType}/fields` ) } static bindAccount( accountId: number, data: WecomAccountBindingRequest ): Promise> { return this.put>( `/api/admin/accounts/${accountId}/wecom-binding`, data ) } }