68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| /*
 | |
|  * Copyright 2025 coze-dev Authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
|  
 | |
| import queryString from 'query-string';
 | |
| import { type EVENT_NAMES, type ParamsTypeDefine } from '@coze-arch/tea';
 | |
| import {
 | |
|   ProductEntityType,
 | |
|   type ProductInfo,
 | |
| } from '@coze-arch/bot-api/product_api';
 | |
| 
 | |
| export function convertTemplateType(
 | |
|   entityType?: ProductEntityType,
 | |
| ): ParamsTypeDefine[EVENT_NAMES.template_action_front]['template_type'] {
 | |
|   switch (entityType) {
 | |
|     case ProductEntityType.WorkflowTemplateV2:
 | |
|       return 'workflow';
 | |
|     case ProductEntityType.ImageflowTemplateV2:
 | |
|       return 'imageflow';
 | |
|     case ProductEntityType.BotTemplate:
 | |
|       return 'bot';
 | |
|     case ProductEntityType.ProjectTemplate:
 | |
|       return 'project';
 | |
|     default:
 | |
|       return 'unknown';
 | |
|   }
 | |
| }
 | |
| 
 | |
| export function extractTemplateActionCommonParams(detail?: ProductInfo) {
 | |
|   const queryParams = queryString.parse(location.search);
 | |
|   const from = (queryParams?.from ?? '') as string;
 | |
| 
 | |
|   return {
 | |
|     template_id: detail?.meta_info.id || '',
 | |
|     entity_id: detail?.meta_info.entity_id || '',
 | |
|     template_name: detail?.meta_info.name || '',
 | |
|     template_type: convertTemplateType(detail?.meta_info.entity_type),
 | |
|     ...(detail?.meta_info.entity_type === ProductEntityType.ProjectTemplate && {
 | |
|       entity_copy_id: detail?.project_extra?.template_project_id,
 | |
|     }),
 | |
| 
 | |
|     template_tag_professional: detail?.meta_info.is_professional
 | |
|       ? 'professional'
 | |
|       : 'basic',
 | |
|     ...(detail?.meta_info?.is_free
 | |
|       ? ({
 | |
|           template_tag_prize: 'free',
 | |
|         } as const)
 | |
|       : ({
 | |
|           template_tag_prize: 'paid',
 | |
|           template_prize_detail: Number(detail?.meta_info?.price?.amount) || 0,
 | |
|         } as const)),
 | |
|     from,
 | |
|   } as const;
 | |
| }
 |