// ============================================================ // 行业配置 API 服务层 // ============================================================ import request, { withSignal } from './request' import type { PaginatedResponse } from '@/types' import type { IndustryInfo, AccountIndustryItem } from '@/types' /** 行业列表项(列表接口返回) */ export interface IndustryListItem { id: string name: string icon: string description: string status: string source: string keywords_count: number created_at: string updated_at: string } /** 行业完整配置(含关键词、prompt 等) */ export interface IndustryFullConfig { id: string name: string icon: string description: string status: string source: string keywords: string[] system_prompt: string cold_start_template: string pain_seed_categories: string[] skill_priorities: Array<{ skill_id: string; priority: number }> created_at: string updated_at: string } /** 创建行业请求 */ export interface CreateIndustryRequest { id?: string name: string icon: string description: string keywords?: string[] system_prompt?: string cold_start_template?: string pain_seed_categories?: string[] } /** 更新行业请求 */ export interface UpdateIndustryRequest { name?: string icon?: string description?: string status?: string keywords?: string[] system_prompt?: string cold_start_template?: string pain_seed_categories?: string[] skill_priorities?: Array<{ skill_id: string; priority: number }> } /** 设置用户行业请求 */ export interface SetAccountIndustriesRequest { industries: Array<{ industry_id: string is_primary: boolean }> } export const industryService = { /** 行业列表 */ list: (params?: { page?: number; page_size?: number; status?: string }, signal?: AbortSignal) => request.get>('/industries', withSignal({ params }, signal)) .then((r) => r.data), /** 行业详情 */ get: (id: string, signal?: AbortSignal) => request.get(`/industries/${id}`, withSignal({}, signal)) .then((r) => r.data), /** 行业完整配置 */ getFullConfig: (id: string, signal?: AbortSignal) => request.get(`/industries/${id}/full-config`, withSignal({}, signal)) .then((r) => r.data), /** 创建行业 */ create: (data: CreateIndustryRequest) => request.post('/industries', data).then((r) => r.data), /** 更新行业 */ update: (id: string, data: UpdateIndustryRequest) => request.patch(`/industries/${id}`, data).then((r) => r.data), /** 获取用户授权行业 */ getAccountIndustries: (accountId: string, signal?: AbortSignal) => request.get(`/accounts/${accountId}/industries`, withSignal({}, signal)) .then((r) => r.data), /** 设置用户授权行业 */ setAccountIndustries: (accountId: string, data: SetAccountIndustriesRequest) => request.put(`/accounts/${accountId}/industries`, data) .then((r) => r.data), }